sábado, 28 de fevereiro de 2009

Dicas para Estudar!!!


SOME RESOURCES!!!

Devido a grande disponibilidade de informações na web, muitos (assim como eu) se aventuram buscando informações, baixando livros(detalhe!!) e recorrendo a tutoriais postados em blogs e nos sites dos projetos.

Contudo, não podemos descartar a leitura de bons livros que enfocam totalmente a area ou assunto, de forma didatica(nem todos!!) e geralmente contem informações muito importantes provenientes de inumeros experts , desenvolvedores.

O intuito desse post é passar alguns links uteis na hora de estudar sobre alguns assuntos ou tecnologias especificas.

Nos proximos posts ,falarei sobre algumas listas de livros considerados bestsellers para Java, OO,Web, Ruby,Metologias Ageis e muito mais!


Sun Student Courses

Cursos gratuitos com certificado ao final focando os seguintes temas:
  • SunSpot
  • OpenSolaris
  • RealWorld Technologies(JRuby,JavaFX,Matisse GuiBuilder,JavaME(Games)
Java With Passion

Cursos ministrados pelo Sang Shin, evagelista de tecnologias da Sun , em parceria com muitos engenheiros renomados e criadores de tecnologia.Os cursos são online e ao final os concluintes tem seus nomes publicados e ganham um certificado
  • Java e OO
  • Java EE(completo incluindo frameworks Web e hibernate)
  • WebServices
  • Ajax
  • JavaFX
  • JRubyonRails

Netbeans Tutorials e Netbeans TV

No site do projeto Netbeans você encontra milhares de tutoriais, de todas as tecnologias que sao utilizadas na plataforma, contando tambem com screencasts e muita dicas, alem de vasta documentação.Exite tambem a comunidade Netbeans TV , o Youtube do desenvolvedor!!


Iniciativa JEDI

Cursos hospedados pela comunidade de usuarios Java de brasilia(DFJUG) que se baseiam nos modulos criados para o projeto original, oriundo das Filipinas com intuito de levar novas tecnologias para quem nao tem como pagar por ela.Cursos gratis e de alta qualidade.
  • Tecnicas de Programação I (Java)
  • Tecnicas de Programção II (Java)
  • Estruturas de Dados
  • Engenharia de Requisitos
  • Segurança
  • Sistemas Operacionais
  • Java Mobile
  • Java para Web
  • e alguns mais!!

Caelum

A Caelum é lider em treinamentos Java e Scrum e possui diversos cursos com valores acessiveis alem de disponibilizar algumas apostilas para download.


SUN

No site da Sun existe o SDN(sun Developer Networks) que conta com milhares de artigos, tutoriais e noticias sobre as novas tendencias e tecnologias das plataformas Java e dos inumeros produto como Glassfish, MySQL, OpenSolaris,JavaFX e muito mais.

La você tambem encontra os tutoriais sobre Java SE, completissimo e referencia ate para certificação, Java EE e WebServices.

Na categoria para estudantes você pode acessar facilidades como comunidades, foruns, descontos para certificações cursos internos.Você tambem pode conferir informações importantes sobre os eventos JavaOne Online e o SunTechDays com palestras e slides dos eventos que deflagram novas tecnologias e tendencias.


Existem muitas outras fontes de informação na web...Atraves do Google você pode vasculhar e garimpar muita coisa usando opções como filetype:pdf ou filetype:ppt é possivel adquirir aulas neste formatos de inumeras faculdades.

Outra dica seria usar a velha e boa Wikipedia e assinar feeds de varios blogs espalhados por ai, tendo como exemplo os blogs da sun, cuja categorias englobam diversos assuntos que são comentados pelos proprios funcionarios.

Qualquer duvida sobre algum assunto, de sempre uma primeira olhada no Google antes de dizer que não sabe onde tem informação ou nao sabe como fazer.

Se precisar de mais ajuda...Existem as comunidades como GUJ, JavaFree, tendo estas foco em Java, que são foruns como milhares de usuarios.


Tem sempre alguem que ja passou pela sua duvida e sempre alguem que você pode ajudar.

A maxima é participe sempre e fique por dentro!!




Links Interessantes:

Marcadores:

sábado, 14 de fevereiro de 2009

Glassfish o servidor para toda obra!!

O QUE É GLASSFISH?

Sun GlassFish Enterprise Server, previamente denominado Sun Java System Application Server é um servidor de aplicações líder no setor, rápido e fácil de usar, baseado na Plataforma Java e tecnologia Enterprise Edition (Java EE) para o desenvolvimento e entrega de aplicações e serviços web.

O GlassFish Enterprise Server, a implementação de referência Java EE, é um servidor de aplicações de código aberto de nível corporativo que oferece desempenho, confiabilidade, produtividade e facilidade de uso superiores a uma fração do custo de servidores de aplicações proprietários. Como a implementação de referência Java EE é construída em código aberto, o GlassFish elimina a dependência de fornecedores, e permite que clientes aproveitem os mais recentes padrões e inovações do setor.


O QUE ELE TEM QUE POSSA ME AJUDAR??

Suporte maximo a tecnologia Java EE , contando os mais novos avanços e tecnologias, gerando mais facilidade e praticidade ao desenvolvedor.

Suporta JAX-WS 2.0, JAXB 2.0 e Open ESB, fornecendo uma arquitetura aberta e extensível para colaboração entre tecnologia de integração e serviços web em uma arquitetura orientada a serviços (SOA).

A IDE NetBeans com SOA suporta o desenvolvimento de aplicações Java EE 5 (incluindo módulos web e EJB 3.0) e fornece ferramentas de projeto visuais SOA para arquitetos e programadores.Ao usar o Netbeans 6.5 o servidor Glassfish vem integrado, nas versões v2 e v3, de forma leve e otimizada.

O Glassfish contem um numeroso conjunto de tecnologias integradas como o JavaDB e a pilha para criação de webservices e serviços Rest(Metro e Jersey).A ferramenta de atualização conta com varios plugins para agregar funcionalidades diversas, onde você pode baixar plugins para JRubyonRails, JMaki(AJAX), IceFaces(JSF) e muito mais!

O Glassfish tambem possue gerenciamento centralizado devido a sua ferramenta asadmin que permite a utilização de qualquer recurso do servidor de forma facil e pratica, sem dores de cabeça.Alem disso, o servidor conta tambem com uma interface intuitiva no formato web onde você pode fazer deploy de aplicações, configuração de clusters, criação de pools de conexões e até monitoramento de recursos , graças a tecnolgia JMX integrada.

È uma servdor otimizado para operar em maquinas com multiplas cpu's, ideal para o novo mercado de hardware, sendo para operar no OpenSolaris, e nos processadores (Sparc)que compõe os servidores Sun, detentores da tecnologia de coolthreads.


GLASSFISH V3 E O FUTURO DA WEB

Na versão v3, o servidor Glassfish é uma plataforma leve para aplicações Web 2.0, ideal para arquiteturas orientadas a serviços e aplicações ricas(RIA) utlizando Java EE, PHP, AJAX e JRuby.Devido ao grande acesso a essas aplicações, o servidor pode criar clusters de alta escalabilidade e disponibilidade, aumentando segurança e performance.

A comunidade Glassfish é extensa e bem integrada, possuindo milhares de desenvolvedores que produzem diversos videos , alem de possuir extensa documentação e diversos tutoriais, o que auxilia a adoção e configuração desta bela ferramenta tanto em ambiente de desenvolvimento, quanto em ambiente de produção.


Links Interessantes





Marcadores:

sexta-feira, 13 de fevereiro de 2009

A Uniao faz a força!!!


OS PORQUES DOS CLUSTERS!!!


Hoje começaremos a falar de um tema bem extenso, porem tentarei resumir alguns conceitos, e um consideravel sumario de sites e blogs sobre este tema!!
Um cluster de computadores significa um amontoado de um ou mais computadores(nodes), que juntos realizam alguma tarefa ou função.O objetivo na maioria das vezes é dividir o problema em partes menores de forma a resolve-los, algo como divir para conquistar(em termos de arquitetura).Cluster sao usados em diversas areas, podendo destacar algumas:
  • Web(Varios servidores de aplicações com balanceamento de carga e proxy reverso)
  • Aplicações que necessitam interagir em ambientes distribuidos como as da plataforma JavaEE(EJB)
  • Banco de Dados, replicados me varias maquinas de forma a promover alta disponibilidade e em alguns casos cache
  • Inteligencia Artificial conectivista que necessita de enorme poder computacional para processar e simular as milhares de ações de suas redes e funções
  • Aplicações cientificas e matematicas que exigem alta performance para calculos como processamento de graficos 3D, imagens e analise de audio/video
Basicamente podemos definir que clusters são usadas na maioria das vezes para aumentar o poder computacional, providenciar encapsulamento e segurança,ou mesmo criar um sistema com tolerancia a falhas. Podemos citar algumas tecnicas para criar os mais diversos tipos de cluster, que devem ser estudadas a fundo sendo muita delas parte da biblioteca java ou extensões dela como:
  • Redes de computadores(java.net/java.nio)
  • Sistemas Operacionais(OpenSolaris, CentOS, Linux)
  • Threads e Multithreaded(java.concurrent,OpenMP,POSIX)
  • Redes P2P(JXTA)
  • Java EE 5/6(Glassfish v2/v3(High Avaibility)
  • RMI/Corba/WebServices(Metro/Jersey)
  • Arquiteturas Avançadas(OpenSparc, Sun Fire T1000)
A Sun é uma empresa que alem de providenciar milhares de linhas de codigo opensource, tambem possui produtos de alta qualidade, segurança e desempenho para mercado empresarial.

Iniciativas como o OpenSolaris, Glassfish v2/v3, OpenWebServer,MySQL,Metro(WebServices) são criada a partir de uma grande infraestrutura e tecnologia criada pela empresa, que abre os codigos de seus produtos sobre licenças e incentiva o crescimento e interação de comunidades de desenvolvimento, fazendo com que tais produtos opensource tenham qualidade fora do comum, alem de atender a aspectos essenciais de mercado, como segurança, facilidade de deployment,facilidade de administração, alta performance e tolerancia a falhas.

UM HISTORIA DE SUCESSO E FORÇA BRUTA!!!



Pesquisas avançadissimas como calcular e simular os primeiros estagios do Universo, computando dados de telescopios poderosissimos, a reatores e aceleradores de particulas, ate a procura por vida fora da Terra, necessitam de monstros da computação que possam efetuar tais tarefas.

Para certas perguntas ,por exemplo, qual o estado do universo nos primeiros 1.7 bilhões de anos é utilizado o maior supercomputador do mundo, hospedado no TACC(Texas Advanced Computer Center) é a plataforma Ranger( inspirado no laptop de Chuck Norris =)

Brincadeiras á parte, o Ranger é uma maravilha da computação, sendo o unico exemplo de utilização de alta tecnologia pra pesquisa e ciência na maior plataforma de computação aberta do mundo!!

A National Science Foundation é responsavel por prover este computador em larga escala como serviço para pesquisadores e cientistas .

Esta maquina foi montada totalmente na Sun e transportada e instalada no laboratorio, contando com uma configuração invejável a qualquer computador da Terra!
  • 6000 metros quadrados para o datacenter, consumindo menos 3 MWatts
  • Mais de 4000 laminas quad-core Sun/Opteron
  • Mais de 120 TB de memoria RAM
  • Capacidade de computação maior que 500 TFlops
  • Tarefas agendadas por um Sun Grid Engine
  • Conectado por 2 switches Magnum, não-bloqueantes de 100 Tbit
  • Gerenciado pelo sistema de arquivos Lustre
  • Mais de 2 PB de armazenamento
  • Todo o sistema e monitarado e gerenciado pelo xVM OpsCenter
Links Interessantes




Marcadores:

Ferramentas de Gerenciamento Java 6



Post sobre o cinto de utilidades do Java, ou seja, todas as ferramentas que acompanham seu jdk e muitas bibliotecas contidas nas diversas especificações e plataformas.


Somente apos o lançamento do Java 5(Tiger) ,o Java passou a contar com um maior numero de bibliotecas no nucleo, e otimizações na maquina virtual melhorando performance e outros problemas, tornando a lingugem robusta e muito poderosa alem de famosa.


Ja na versão atual, o Java 6(Mustang) poucas modificações foram adicionadas, mas algumas ferramentas merecem ser citadas como as mostradas neste artigo, que tem a função de gerenciar processos ocorrendo em uma maquina virtual.


JMX


A tecnologia JMX(Java Managed Extensions) providencia a construção de aplicações distribuidas, baseadas na web, modulares e dinamicas que sejam soluções otimas para gerenciar e monitorar dispositivos,aplicações, e serviços de rede(WebServices).Pelo seu design, este standart é apropriado para adaptação em sistemas legados, implementação de novas soluções de gerenciamento/monitoramento e que possam ser plugadas a estes no futuro. Iniciado no Java 5, a tecnologia foi incluida na plataforma Java SE 6, fazendo com que seu uso esteja disponivel para desenvolvedores que queiram construir ferramentas de gerenciamento/monitoração de alta performance, tendo estatisticas sobre os recursos mais importantes como CPU, Memoria, Heap,Threads de forma simples(POO) e portavel(JVM).


VisualVM

Java VisualVM é uma interface de usuario grafica e intuitiva que prove informações detalhadas sobre aplicações baseadas na tecnologia Java(Java Applications) enquanto eles estejam sendo executados na JVM dada.

O nome VisualVM se deve ao fato que a interface Java VisualVM prover informações sobre a sua JVM de maneira visual!!! SEM A DOR DO CONSOLE!!!

JavaVisualVM combina varias utilidades de monitoramento,analise de erros e perfil em uma unica ferramenta.Por exemplo, muita da funcionalidade oferecidas pelas ferramentas de console jmap,jstat e jstackforam integradas no Java VisualVM.

Outras funcionalidades como as da ferramenta JConsole podem ser incorporadas atraves de plugins.


Alguns screenshot da VisualVM:






Para utilizar a VisualVM você deve entrar na pasta onde instalou seu jdk e em seguida navegar até a pasta bin utlizando seguinte comando(Ubuntu 8.10):


Vejam outras tecnologias incorporadas no Java 6 nos proximos posts!!!


Marcadores:

quarta-feira, 11 de fevereiro de 2009

Threads at Work PARTE 1



THREADS


Basicamente, threads são linhas de execuções que possuem mesmo contexto de software vinculados á espaços de memoria de um processo pai, porem possuem contexto de hardware diferente.Desta forma, podemos caracteriza-las como processos leves, ja que o escalonamento de threads é muito mais barato e leve do que o escalonamento de processos(OS que faz isso!!).

O QUE POSSO FAZER COM THREADS?

A vantagem do uso de threads se mostra em diversas areas como:
  • Swing(Aplicações Desktop)
  • I/O(Arquivos, Base de Dados)
  • Networking(Sockets, HTTP Connections)
  • Clusters(RMI, EJB,JXTA)
  • Robotics(Threads para sensores)
Mas o ambiente de utilização de programação usando threads é muito maior. Podemos fazer com que nossas aplicações façam calculos extensivos em tarefas diferentes e quando estes terminarem nossa GUI é então atualizada, sem que a interface fique congelada, algo que pode ocorrer em calculos muito complexos. Da mesma maneira, não precisamos esperar que todo um arquivo(ou stream de dados) seja transferido por completo, para que possamos fazer outras ações. Alem disso, em muitas aplicações temos que atender a inumeras requisiçõesde inumeros clientes da aplicação, fazer milhares de calculos em paralelo ou esperar por inumeros eventos e executa-los de forma paralela.
O QUE É AMBIENTE MULTITHREAD OU MULTITAREFA??

Um processo que pode se dividir sua missão em diversas tarefas, tornando sua execução multitarefa ou multithread. Porem a programação com threads tem alguns topicos que tornam aplicações com threads um vasto assunto e complexas, como o caso onde ocorre algum deadlock. Deadlock ou "abraço da morte" pode ser entendido da seguinte maneira:
  • Thread t1 invoca um metodo 1 que tenta acessar algum metodo 2 de uma Thread t2
  • Ao ser invocado, o metodo 2 da t2 chama o metodo 1 de t1 que ainda espera o retorno do metodo 2 que pelo que podemos notar, noa ira retornar
Basicamente o que acontece é um loop infinito ,pois um sempre que uma thread invoca seu metodo ele espera retorno e o metodo intrinseco deste espera o retorno do primeiro metodo. Confuso não??Se é para você imagine para seus programas e seus clientes!! Devemos sempre lembrar (pois todos conhecem de sistemas operacionais!!) que se você necessita que suas operações ocorram em um determinada ordem, você nao esta programando de forma multithreaded,e sim de forma convencional sequencial. Se mesmo assim você utilizar tal recurso, muitos bugs graves podem acontecer de forma a corromper seus dados.Tudo isso ocorre porque o programador não tem controle sobre como são escalonados suas threads, este papel e do sistema operacional.Portanto se tarefas necessitam ser executadas em paralelo, então elas devem ser mutuamente exclusivas ou seja, não devem "depender de dados de outras tarefas". Um thread possui estados finitos que caracterizam basicamente seu ciclo de execução:
  • criada
  • executando
  • pronto
  • bloqueio
  • termino
A thread é criada.Se ela for escalonada ela entra no estado de execução e e segue efetuando seus calculos.Se ocorre a troca de contexto, antes dela terminar , a thread entra na fila de threads prontas, que esperam uma proxima oportunidade para executar.No caso de uma operação I/O por exemplo, a thread é bloqueada enquanto aguarda o sinal de termino da operação, emitido por algum dispositivo,fazendo com que o sistema operacional escalone a thread que iniciou a operação para que esta possa continuar sua execução.Quando todos os calculos são concluidos, ela termina.

Nos proximos posts mostraremos caracteristicas que fazem do Java uma otima linguagem para criar programas multitarefa, e muitos exemplos de como faze-lo!
Links Interessantes

Marcadores:

terça-feira, 10 de fevereiro de 2009

OpenSolaris e o VirtualBox


PORQUE VIRTUALIZAR?!?!

A maioria das pessoas quando pensa em virtualizar, associa a coisa que não existem, ou imaginarias mas esquecem o que realmente esta por trás disto tudo.

Basicamente virtualização significa capacidade de esconder os dados ou caracteristicas de um sistema do usuario, atraves de uma interface.

No caso so Second Life por exemplo, atraves de avatares, faz com que pessoas trabalhem, se comuniquem, e criem interação em diversos niveis, sem basicamente expor suas vida reais!

Podemos verificar este conceito em diversas areas, como Designs Patterns Proxy e Facade muito usados em linguagens OO para fazer bom uso do encapsulamento(Programe sempre orientado a interface e não a implementação!).

Outra grande area seria na criação de soluções de computação distribuida, como cluster para diversas areas como:


  • Alta Disponibilidade(Proxy Balance)
  • Alta Performance(Metaclusters, Map/Reduce)
  • Sistema de multicamada(RMI, EJB, Threads)
  • Tolerancia a Falhas(RAID)
  • CRUD(Banco de Dados)
  • Pool de threads(JDBC/Glassfish Runtimes)
  • Algoritmos Paralelos
  • JVM(Maquinas Virtuais!!)
  • Algoritmos Geneticos e Redes Neurais
Porem nosso foco de post(!!!) é sobre ambiente de virtualização em ambientes tanto desktop quanto em servidores, fazendo com que diversos sistemas operacionais possam rodar em um mesmo ambiente fisico, abstraindo as nuances e particularidades do hardware em questão como drivers e arquiteturas.Neste quesito aparece o Virtual Box!

Virtual Box é uma familia de poderosos produtos de virtualização x86 para empresas e tambem para uso desktop.Não apenas muito rico de caracteristicas, como tambem é produto de altissima performance para clientes empresariais, sendo a unica solução disponivel de graça atraves do OpenSource sobre liçensa GPL(Gnu).

Virtual Box roda em Windows, Linux, Macintosh e OpenSolaris e suporta inumeros sistemas operacionais nao se limitando a Windows(XP,Server 2003,Vista),Linux(2.4 e 2.6), Solaris e OpenSolaris e OpenBSD.

Virtual Box é desenvolvido constantemente e disponibilizado frequentemente na forma d erelases, tendo sempre uma lista crescente de quesitos para suportar sistemas operacionais e plataformasao qual ele opera.

O suporte é dado pelo esforço da comunidade baseada em uma companhia dedicatada, ao qual qualquer um esta apto a contribuir, enquanto a SUN garante que o produto sempre possua uma padrão de qualidade professional.

No site do oficial do Virtual Box todos podem ter acesso á documentação, downloads, codigo-fonte e documentos com arquitetura e dicas.

Para instalação do OpenSolaris sobre qualquer sistema operacional,pode se usar o Virtual Box de forma que as configurações de boot da maquina nao sejam alteradas, proporcionando um ambiente facil e seguro para testar e desenvolver com OpenSolaris.

Neste link, você pode ver um tutorial sobre como instalar o Virtual Box e OpenSolaris, criando imagens de disco rigido e setando algumas propriedades de performance.

Links Interessantes



Marcadores:

segunda-feira, 9 de fevereiro de 2009

Criando um aplicação de forma simples com Netbeans


O Netbeans é uma IDE robusta, com suporte a inumeras linguagens e possui principalmente em Java, diversos recursos para o desenvolvimento de aplicaçoes sejam Desktop, Web ou Moveis.Ele possui uma gama imensa de componentes e plug-ins utilizando o melhor do vasto ecossitema de tecnologias Java para as plataformas SE, EE, ME, FX.
A especificação JPA(Java Persistence API) que reuniu e consolidou o mapeamento objeto-relacional orientado a objetos para Java.Muito inspirada pelo Hibernate(quase tudo!!) , que é uma implementação dessa especificação.

Basicamente, tal API facilita a vida dos programadores na hora de mapear suas classes para banco de dados relacionais(MySQL, PostGreSQL, JavaDB) atraves de anotations que marcam seus atributos,classes e keys e oferencendo um gerenciador de entidades que faz o serviço sujo!!

Muitos acreditam que este seria o fim do design pattern DAO onde são criadas classes que encapsulam a responsabilidade de persistire selecionar seus objetos.Outros perguntam o que seria melhor, Hibernate ou JPA.Podemos responder as duas perguntas da seguitne forma como a propria equipe de experts do Java EE:

O padrão DAO faz com que o sistema fique coeso, encapsulado e facil de escalar e aplicar mnautenção, ja que os mecanismos com os quais a persistenciaé feita (atraves do JDBC) ficam invisiveis atras da interface para efetuar tais serviços.
A idéia da persistência O/R é reunir as vantagens de se utilizar um modelo orientado a objetos para a construção de uma aplicação, com a performace e a confiabilidade dos bancos de dados relacionais.

Antes, as complexidades do SQL era reduzidas atraves do JDBC, mas de forma ingenua, ja que o JDBC prove somente o acesso as operações basicas do bancos de dados, como CREATE,SELECT,DELETE,UPDATE, alem de criar conexões baseadas nos drivers para cada banco, ou seja, criam pontes para você criar suas tabelas, popula-las, edita-las e executar suas consultas, mas nao abstrai de você o codigo SQL escrito por DBA's que nao pensam em OO, e nao se preocupam com portabilidade, manutenabilidade entre outras caracteristicas de um bom sistema OO.

Dentre os inumeros tutoriais oferecidos no site do Netbeans, utilizando tecnologias de vanguarda e boas praticas podemos destacar, o da criação de uma aplicação desktop que acessa bano de dados, cujo esqueleto(MVC) é gerado proporcionando mapeamento de tabelas para objetos(JPA-JSR220), e uma interface de formulario com Swing contendo um frame principal , os componentes para cada tipo de dado, e a possibilidade de customização atraves da tecnologia de beans biding(JSR-295) que conecta atributos de objeto ou entidade á campos no formulario.
Links Interessantes:
BONS ESTUDOS E ATÉ O PROXIMO POST !!

Marcadores:

segunda-feira, 2 de fevereiro de 2009

Netbeans 6.5



"This year one product, NetBeans, dominated the categories by winning five out of twelve."


É official:Netbenas IDE é o grande ganhador do premio Developer.com Product of the Year 2009 Awards!

O Netbeans 6.5 ganhou os premios nas categorias como melhor ferramenta Java, melhor ferramenta OpenSource 2009, melhor ferramenta de desenvolvimento com a plataforma Netbeans e melhor utilidade de desenvolvimento com seu profiler para debugar aplicações multithread, alem de ganhar pelo terceiro ano seguido premio de melhor ferramenta para desenvolvimento Wireless/Mobile com seu Mobility Pack.

Porque Netbeans??

Em adição ao suporte total a todas as plataformas Java(SE, EE, ME e JavaFX) o Netbeans IDE 6.5 é a ferramenta ideal para desenvolvimento de software com PHP, Ajax e Javascript, Groovy e Grails, Ruby on Rails e C/C++.

O release 6.5 prove aprimoramentos no suporte para frameworks web como Hibernate, Spring, JSF,JPA alem do servidor de aplicação Glassfish e inumeros banco de dados como MySQL, PostgreSQL e JavaDB.Alem disso , a IDE inclui uma nova e melhor ferramenta de busca, uma interface ainda mais amigavel e compilação automatica ao salvar seu projeto, alem de total integração a importação de projetos Eclipse.

Uma das maiores vantagens do Netbeans no desenvolvimento Java se deve aos editores graficos no estilo drag'n'drop para todas as plataformas Java:

  • Matisse GUI Builder(Swing/SE)
  • Visual Web Pack(JSF/EE)
  • Mobility Pack (Wireless Toolkit/ME)
  • Palheta de componentes de midia(JAVAFX)

O Netbeans vem em diversas sub versões dependendo do tipo de desenvolvimento que você se presta a fazer.Por exemplo se você desenvolve somente em Java SE, você pode baixar a versão que contem somente o Java SE de apenas 39MB. Ou se você quiser o suporte as 3 plataformas(SE,EE,ME) alem dos servidores e web containers(GlassfishV2R2,GlassfishV3,Tomcat 6) você pode baixar uma versão de 208MB. Somente para Ruby existe a versão com total suporte de 58 MB, alem da de PHP(26MB) ou C/C++(24MB). Alem disso o suporte aplugins permite com que você consiga posteriormente ao primeiro download , adicionar qualquer funcionalidade, seja das versões para download seja outros plugins como JMaki(AJAX), Hibernate, Enclojure(Clojure), OpenGL(JOGL) e muitos outros.

Experimente nao custa nada!!!

PHP

  • Editor PHP(completação de codigo,e coloração de codigo semantica e sintatica
  • suporte para heredoc e PHTML
  • Debugging usando Xdebug
  • Geração de codigo para banco de dados MySQL
Javascript e Ajax
  • Debugging de Javascript no Firefox/Internet Explorer
  • Monitor de transações HTTP
  • Editor de Javascript e CSS melhorado
  • Gerenciador de Bibliotecas Javascript incluindo Yahoo, Woodstock, JQuery, Dojo,Scriptaculous, Prototype
  • Suporte integrado ao JMaki
Alem dessas caracteristicas o Netbeans tambem é considerada a melhor ferramenta para desenvolvimento JRuby on Rails e Groovy contando com complemento de codigo, e todas as skills que a ferramenta ja oferece para Java e outras linguagens.


Links Interessantes:

Marcadores:

Introdução a Business Intelligence e Data Mining


Alguem ja ouviu falar em Business Intelligence?!
A importancia de tais tecnicas para disputa no mercado?!



Business Intelligence

A Inteligência Empresarial, ou Business Intelligence, é um termo do Gartner Group. O conceito surgiu na década de 80 e descreve as habilidades das corporações para acessar dados e explorar as informações (normalmente contidas em um Data Warehouse/Data Mart), analisando-as e desenvolvendo percepções e entendimentos a seu respeito, o que as permite incrementar e tornar mais pautada em informações a tomada de decisão (JFF).

As organizações tipicamente recolhem informações com a finalidade de avaliar o ambiente empresarial, completando estas informações com pesquisas de marketing, industriais e de mercado, além de análises competitivas. Organizações competitivas acumulam "inteligência" à medida que ganham sustentação na sua vantagem competitiva, podendo considerar tal inteligência como o aspecto central para competir em alguns mercados.

Geralmente, os coletores de BI obtêm as primeiras fontes de informação dentro das suas empresas. Cada fonte ajuda quem tem que decidir a entender como o poderá fazer da forma mais correta possível. As segundas fontes de informações incluem as necessidades do consumidor, processo de decisão do cliente, pressões competitivas, condições industriais relevantes, aspectos econômicos e tecnológicos e tendências culturais.

Cada sistema de BI determina uma meta específica, tendo por base o objetivo organizacional ou a visão da empresa, existindo em ambos objetivos, sejam eles de longo ou curto prazo.


Data Mining(Mineração de Dados)

o DataMining é uma da tecnicas mais empregradas, o que significa explorar um gigantesca quantidade de dados em busca de padrões consistentes de dados,utlizando diversos processos e algoritmos, como senquencias temporais e/ou regras de associação, agrupando variaveis de forma sistematica criando novos subconjutos de dados.Esse é um tópico recente em ciência da computação mas utiliza várias técnicas da estatística, recuperação de informação, inteligência artificial e reconhecimento de padrões.

Devido a utlização de tecnicas e algoritmos que utilizam dados para obter conhecimento, assim como quase todos os metodos empregados em inteligencia artificial, o Data Mining nao é uma tecnica magica, por isso, os dados analisados devem ser muito bem levantados, selecionados, filtrados e pré-processados, caso contrario o resultado pode nao ter valor algum, seguindo a lei de sistemas GarbageIO(Garbage In/Out).

Um dos softwares mais interessantes nesta área é o Weka(Waikato Enviroment for Knowledge Analysis), desenvolvido por pesquisadores da Univercidade Waikato na Nova Zelandia em Java, sendo composto de um ambiente grafico para testes e avaliação de algoritmos de mineração de dados e uma API utilizada para embutir algoritmos em aplicações Java!!

Tecnicas de Mineração de Dados
  • Classificação:
Predição de uma classe ou categoria discreta a partir de atributos de entrada.Algoritmos de classificação analisam dados para cada categoria discreta presente da base de dados, tentando criar funções que cosnigam separar diferentes categorias usando o valor de atributos extraidos.Após a criação destas funções de separação, estas são usadas para definir categoria de dados nao explicitas, auxiliando na previsão de categorias discretas usadas , por exemplo, em sistema de detecção de intrusão em redes ou sistemas de tomada de decisão em instituições financeiras(Desta forma nao existiria a crise financeira atual :P).

  • Associação:
Descobertas de co-ocorrencias entre elementos em grandes conjuntos de dados, onde os algoritmos de associação analisam atributos que ocorrem frequentemente de acordo com métricas definidas.Imagine cada dado com o acontecimento de um evento qualquer,podemos então verificar que valores de atributos sempre acabam ocorrendo em conjunto.Esta tecnica é muito utilizada na analise de carrinho de compras em sites de E-Commerce, utilizando como entrada a lista de itens compradas em determinada transação, determinando ao final, que produtos são comprados em conjunto com alguma frequencia.

  • Agrupamento:

Descoberta de grupos naturais em que dados estão em um mesmo grupos são considerados semelhantes e dados em grupos distintos são considerados divergentes.Tais algoritmos tentam criar agrupamentos de dados utilizando diferentes metricas de similaridade, geralmente de forma iterativa até que os grupos criados sejam considerados adequados, e é geralmente utilizado com dados numéricos.Um exemplo seria a separação de clientes em diversas categorias para exploração de similaridades ainda não conhecidas.

  • Regressão ou Predição Numerica:
Descoberta de um valor associado á cada dado e que podem ser calculado ou inferido a partir dos valores de seus atributos.É um conceito similar a tecnica de classificação, mas ao invés de tentar inferir a categoria discreta associada ao dados, utiliza-se uma categoria numérica.Um exemplo clássico é a de previsão de series temporais, onde a partir de um conjunto de dados coletados ao longo do tempo, se pode prever o comportamento futuro do conjunto de dados, podendo ser utilizado para previsão de indicadores economicos e financeiros, mas logicamente é um processo altamente complexo e sujeito a erros humanos!!!!


Marcadores: