Guia de Empregos – Isso é que é Importante

Mudamos para http://infoachei.com.br/

Moved to http://infoachei.com.br/

Obrigado pela visita!
Thanks for visits!

MIT – Cursos Traduzidos

Mudamos para http://infoachei.com.br/
Obrigado pela visita!

Moved to http://infoachei.com.br/
Thanks for visits!

O portal Universia traduziu os cursos da MIT!

Muito Bom vale a pena conferir!

http://www.universia.com.br/mit/index.jsp

RSS – O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!

Moved to http://infoachei.com.br/
Thanks for visits!

Introdução

Hoje em dia é comum encontrar sites que possuem pequenas figuras (geralmente na cor laranja) acompanhadas de dizeres como “RSS”, “XML” ou “Atom”, como mostram as imagens abaixo. Note que a figura à direita, que é o símbolo universal desse padrão, não tem nenhuma escrita, mas tem a mesma finalidade das demais: indicar que, naquele site, é possível utilizar feeds RSS.

XML, RSS, ATOM

Graças a esse recurso, sites e blogs podem divulgar conteúdo novo de maneira rápida e precisa. Quanto ao usuário, este pode ser informado de cada novidade de seus sites preferidos. O objetivo deste artigo é mostrar como o RSS permite tal possibilidade, explicar como esse padrão surgiu e esclarecer o seu funcionamento básico.

O que é RSS

A sigla RSS tem mais de um significado. Alguns a chamam de RDF Site Summary, outros a denominam Really Simple Syndication. Há ainda os que a definem como Rich Site Summary.

RSS é um recurso desenvolvido em XML que permite aos responsáveis por sites e blogs divulgarem notícias ou novidades destes. Para isso, o link e o resumo daquela notícia (ou a notícia na íntegra) é armazenado em um arquivo de extensão .xml, .rss ou .rdf (é possível que existam outras extensões). Esse arquivo é conhecido como feed, feed RSS.

O interessado em obter as notícias ou as novidades deve incluir o link do feed do site que deseja acompanhar em um programa leitor de RSS (também chamado de agregador). Esse software (ou serviço, se for um site) tem a função de ler o conteúdo dos feeds que indexa e mostrá-lo em sua interface.

Para que você entenda melhor, imagine a seguinte situação: Arthur Dent é uma pessoa que gosta de ler as notícias/novidades dos seguintes sites: InfoWester, Viva o Linux, BR-Linux, Folha Online e WinAjuda. O problema é que, por ser uma pessoa muito atarefada, Arthur não tem muito tempo para verificar cada endereço em busca de conteúdo novo. Para que isso seja possível, ele utiliza os serviços de RSS de cada um desses sites. Através de seu programa-leitor, ele clica no nome do site indexado e uma lista de notícias daquele endereço aparece numa janela ao lado (essa lista pode mostrar apenas o título da notícia – esse título também é um link para a matéria – ou pode mostrar o título mais uma breve descrição, tudo depende da forma de trabalho do agregador). Arthur, então, lê a descrição de cada notícia e clica nos links das que lhe interessa. Ao fazer isso, ele é automaticamente direcionado à página que contém aquela matéria.

Em um outro exemplo, imagine que você costuma ler um total de 30 blogs. É trabalhoso visitar cada um para ver se há textos novos. Como todos esses blogs possuem RSS, você rapidamente fica sabendo quando algo novo foi disponibilizado. Para não “ficar por fora”, é recomendável que você também inclua RSS em seu blog, se tiver um.

A seguinte imagem ilustra a primeira situação. Repare que o programa usado é o navegador de internet Opera, que assim como o Firefox e o Internet Explorer, é compatível com RSS. No lado esquerdo do programa está a lista de novidades do feed RSS do InfoWester. No lado direito, aparece o conteúdo disponibilizado na notícia/novidade selecionada. Repare que o nome do autor, a data de publicação e o link para a matéria completa também são mostrados.

É importante frisar que há vários leitores de RSS disponíveis gratuitamente na internet. Há versões para praticamente todos os sistemas operacionais. Cada um é dotado de recursos diferentes. Por exemplo, há programas que se agregam a clientes de e-mail e permitem que você leia notícias em softwares como o Microsoft Outlook e o Mozilla Thunderbird, por exemplo. Outros são capazes de verificar os sites listados em um intervalo de tempo definido por você e emitem um aviso sonoro ou visual assim que encontram uma notícia nova. Mais utilizados, no entanto, são os leitores on-line, com destaque para o Google Reader e para o Bloglines. A vantagem destes serviços é que você consegue acessar os feeds que assina a partir de qualquer computador com acesso à internet, independente do sistema operacional.

Feeds RSS no navegador Opera

Como o RSS surgiu

O padrão RSS surgiu no início de 1999 e é uma criação da equipe da Netscape, que “largou” o projeto tempos depois por não achá-lo viável. Uma empresa de menor porte, a UserLand, decidiu por continuar o RSS para aplicá-lo em suas ferramentas de blogs. Para isso, os desenvolvedores resolveram simplificar o código e, quando isso foi concluído, o RSS 0.91 foi lançado. A Netscape tinha trabalhado até a versão 0.90.

Paralelo ao trabalho da UserLand, um grupo de desenvolvedores continuou o RSS 0.90 baseando-o no padrão RDF (ver o tópico a seguir). Logo, a versão 1.0 foi lançada por este grupo. A UserLand, no entanto, continuou seu trabalho, lançado versões como 0.92, 0.93 até que finalmente chegou à versão 2.0. Certamente, a UserLand daria a numeração 1.0 a esta última, mas essa seqüência já tinha sido adotada pelo outro grupo.

Na verdade, existem mais grupos trabalhando com RSS. É por isso que existem tantos nomes para essa tecnologia.

O que é RDF

RDF é a sigla para Resource Description Framework. Trata-se de uma especificação normalmente baseada em XML que tem como objetivo automatizar e ampliar recursos para a internet através de representação de informações. O RDF tem como base o trabalho de uma série de grupos que desenvolvem tecnologias de informação. Isso significa que o RDF não foi criado exclusivamente para ferramentas como o RSS, como muitos pensam. Na verdade, se estudarmos o RDF a fundo, veremos que ele tem utilidade em várias aplicações, como em sistemas de busca e mecanismos de compartilhamento de informação.

Por ser um assunto complexo e que foge dos objetivos deste artigo, o RDF não será detalhado aqui. Para maiores informações a respeito visite o site www.w3.org/RDF.

O que é Atom

Ao contrário de RSS, Atom não é uma sigla, mas também é um formato para divulgação de notícias. Há quem diga que esse projeto é, inicialmente, uma proposta de unificação do RSS 1.0 e do RSS 2.0. O Atom também é baseado em XML, mas seu desenvolvimento é tido como mais sofisticado. O grupo que nele trabalha tem até o apoio de grandes corporações, como o Google.

A grande maioria dos agregadores de feed disponíveis ao usuário suporta tanto as versões do RSS quanto o Atom. Para obter mais informações sobre essa tecnologia, visite seu site oficial: www.atomenabled.org.

Como o RSS funciona

Por ser baseado em XML, nada melhor do que explicar o funcionamento do RSS através de seu código-fonte. Para servir de exemplo, usaremos o código abaixo. Note que ele contém campos básicos, o que significa que feeds RSS disponíveis na internet podem contar com mais detalhes:

<rss version=”2.0″>

…..<channel>
……….<generator>RSS Builder </generator>
……….<title>InfoWester</title>
……….<link>http://www.infowester.com</link>
……….<description>Propagando conhecimento </description>
……….<language>pt-br</language>
……….<webMaster>contato@infowester.com</webMaster>

……….<item>
……………<title>Edições anteriores do Boletim AntiVírus</title>
……………<pubDate>Thu, 13 Jan 2005 14:48:09 -0200</pubDate>

……………<description>
Agora é possível acessar as edições anteriores do Boletim AntiVírus. Estas são disponibilizadas com um atraso de duas edições em relação à última lançada. Assim, se a última edição for a de número 100, estarão disponíveis as edições de 1 a 98. Somente as notícias sobre vírus são fornecidas. As notícias de destaque e a dica de site da semana são exclusivamente fornecidas nas edições enviadas por e-mail.
……………</description>

……………<link>http://www.infowester.com/boletim2.php</link>
……………<author>contato@infowester.com</author>
……………<category>Boletim AntiVírus</category>
……….</item>

……….<item>
……………<title>PowerToys para Windows XP</title>
……………<pubDate>Sun, 9 Jan 2005 22:02:11 -0200</pubDate>

……………<description>
A Microsoft costuma lançar pequenos aplicativos chamados “PowerToys” que permitem alterar ou aumentar as funcionalidades do Windows. No entanto, poucas pessoas os conhecem. Nestas dicas, você conhecerá os PowerToys preparados para o Windows XP.
……………</description>

……………<link>http://www.infowester.com/dicaspowertoysxp.php</link>
……………<author>contato@infowester.com</author>
……………<category>Dicas</category>
……….</item>

…..</channel>
</rss>

A primeira linha informa a versão do RSS usado. Neste caso, é a 2.0. Já a tag (tag é um campo em HTML que deve ser preenchido da forma <nomedatag> conteúdo </nomedatag>) channel indica o canal do feed. A tag link possui o endereço do site (http://www.infowester.com) e a tag title é preenchida com o nome do site (InfoWester). Em description, é possível fornecer uma breve descrição do site. No entanto, muitos webmasters prefere informar o slogan do site neste campo. O do InfoWester é “Propagando conhecimento”. A tag language informa o idioma usado no site (português do Brasil) e o campo webmaster informa o responsável por ele. Há quem prefira informar um endereço de e-mail nesta tag. Neste caso, é contato@infowester.com.

Agora vem a parte mais interessante: a área item. Dentro desta tag está a notícia. Para cada uma, é necessário ter uma área item específica. Repare que no exemplo existem duas áreas item, logo, existem duas notícias. A área item é preenchida com a tag title, que fornece o título da notícia, com a tag pubDate, que fornece a data de publicação da notícia em questão, com a tag description, que permite a visualização de um resumo do texto (ou do texto completo), com a tag link, que indica o endereço da notícia, com a tag autor, que informa quem é o autor da notícia, e com a tag category, que permite ao webmaster informar qual é a seção/categoria daquela notícia. No exemplo, uma notícia pertence à seção Boletim AntiVírus (um antigo informativo do InfoWester, que foi substituído por uma newsletter), e a outra, à seção Dicas.

Salvando este código com a extensão .rss ou .xml, e indicando ao agregador o endereço onde o arquivo ficará disponível, o RSS do site ficará pronto. O trabalho agora é do software ou do serviço que lê o RSS, que terá que usar cada informação de maneira adequada.

Você pode editar manualmente seu RSS ou então usar um programa/script próprio para isso. O código do exemplo foi gerado no programa RSS Builder. Repare que esse nome é informado na tag generator, a primeira depois da abertura da tag channel. Existem muitos geradores de RSS na internet, basta procurá-los em sites de downloads. Alguns sistemas de blog, como o WordPress, geram RSS automaticamente.

O símbolo universal

A partir de sua versão 1.5, o navegador de internet Mozilla Firefox passou a adotar um símbolo diferente para o RSS. Depois disso, o símbolo se tornou padrão para representar feeds RSS, isto é, se tornou universal. Trata-se da imagem abaixo, que já foi mostrada no início deste artigo:

Símbolo RSS

No caso do Firefox ou de outros programas compatíveis com RSS, basta clicar no símbolo em questão que geralmente aparece no canto direito da barra de endereços ou em um ponto específico da página visitada para que o feed do site acessado seja adicionado.

Finalizando

Uma idéia simples e eficiente. Essa é uma boa forma de definir o que o padrão RSS representa. Como você deve ter notado, esse é um recurso muito útil para acessar conteúdo específico no meio do emaranhado de informações que a internet se tornou. Através de uma única interface, você pode ver notícias ou conhecer novidades das mais variadas fontes e ler somente aquelas que lhe são interessantes. Hoje em dia, é difícil encontrar sites que não oferecem esse recurso, o que prova que essa forma de distribuição de conteúdo veio para ficar e evoluir. E como não poderia deixar de ser, você pode acessar o RSS do InfoWester para saber das novidades do site, o RSS do InfoWester Notícias, além do RSS do Blog InfoWester, que disponibiliza textos sobre tecnologia quase que diariamente.

Fonte:

http://www.infowester.com/rss.php

 

Java – O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!

Java, das torradeiras à Internet

DukeMuito hoje em dia é falado sobre Java e toda a revolução que ela vem provocando no way-of-life de programadores, analistas e internautas. Mas o que é Java, afinal? Quais são suas origens e seus propósitos? De onde vem todo esse sucesso?

Java é uma linguagem de programação orientada a objetos, desenvolvida por uma pequena equipe de pessoas na Sun Microsystems. Inicialmente elaborada para ser a linguagem-base de projetos de software para produtos eletrônicos, Java teve seu grande boom em 1995, devido ao sucesso mundial da World Wide Web. Mas o que tem Java a ver com a WWW?

Como foi dito, o propósito inicial do desenvolvimento de Java foi para funcionar em processadores de eletrodomésticos. Os projetistas de sistemas de controle desses processadores, descontentes com linguagens convencionais de programação, como C, propuseram a criação de uma linguagem específica para uso em processadores de aparelhos domésticos, como geladeiras e torradeiras. Todo o descontentamento dos projetistas residia no fato de que programas escritos e compilados em C são fortemente dependentes da plataforma para a qual foram desenvolvidos. Como o ramo de eletro-eletrônicos está em constante evolução, a cada novo liquidificador lançado no mercado com um novo processador embutido, um novo programa deveria ser escrito e compilado para funcionar no novo compilador, ou então, na melhor das hipóteses, para reaproveitar o antigo programa, no mínimo ele teria de ser re-compilado para o novo processador.

Um outro problema no uso de linguagens de programação tradicionais em produtos eletro-eletrônicos reside no fato de que o consumidor em geral quer uma longa vida útil para seu aparelho. De outro lado, é ponto pacífico que a maioria dos softwares são projetados já prevendo-se sua breve obsolecência, ou seja, escreva um programa hoje e em poucos meses ele estará ultrapassado. Desta forma, sempre que novos processadores para eletrodomésticos fossem desenvolvidos, eles teriam de apresentar uma espécie de compatibilidade retroativa. (Se bem que para usuários de PC, isso não é lá muito estranho, basta lembrar a compatibilidade forçada na evolução 8088-80×86 e no encadeamento DOS-Windows-Win95).

Por fim, os projetistas de software de eletrodomésticos desejavam que o software por eles fabricado fosse seguro e robusto, capaz de funcionar em um ambiente tão adverso quanto uma cozinha. E que fosse confiável também, mais ainda que um software normal, pois quando ocorre alguma falha em um aparelho eletro-eletrônico, peças mecânicas são trocadas, gerando um custo a mais pro fabricante.

No início de 1990, Naughton, Gosling e Sheridan começaram a definir as bases para o projeto de uma nova linguagem de programação, apropriada para eletrodomésticos, sem os problemas já tão conhecidos de linguagens tradicionais como C e C++. O consumidor era o centro do projeto, e o objetivo era construir um ambiente de pequeno porte e integrar esse ambiente em uma nova geração de máquinas para “pessoas comuns”. A especificação da linguagem terminou em agosto de 1991, e a ela deu-se o nome de “Oak” [Carvalho]. Por problemas de copyrigth (já existia uma linguagem chamada Oak) o nome foi mudado em 1995 para Java, em homenagem à ilha de Java, de onde vinha o café consumido pela equipe da Sun.

Em 1992, Oak foi utilizada pela primeira vez em um projeto chamado Projeto Green, que tinha por propósito desenvolver uma nova interface de usuário para controlar os aparelhos de uma casa. Tal interface consistia em uma representação animada da casa, que era exibida em um computador manual [chamado star seven, bisavô dos palmtops de hoje], e que tinha uma tela sensível ao toque que permitia a manipulação dos eletrodomésticos. Essa interface era totalmente escrita em Oak, e evoluiu para um projeto de interface para redes de televisão pay-per-view. Contudo, o padrão proposto por esses dois projetos não vingou, e outros padrões, pelo menos em sistemas de TV pay-per-view vêm tomando conta do mercado. Um personagem animado desses projetos, Duke, tornou-se um dos símbolos de Java.

Em meados de 1993, pode-se dizer que Oak ia “mal das pernas”. Os projetos propostos não eram economicamente viáveis, e não se via um grande futuro no desenvolvimento de aparelhos que suportassem essa nova linguagem. Justamente nessa época, a World Wide Web estava em seu nascimento, trazendo um novo horizonte para a Internet. (É importante lembrar que a Internet já existia muito antes do surgimento da WWW. A WWW nada mais é que um conjunto de protocolos que permite um acesso mais amigável aos recursos disponíveis na Internet. Dentre esses protocolos, por exemplo, o mais conhecido em geral é o de transferência de hipertexto [http]). Com o lançamento do primeiro browser do mercado, o Mosaic, ocorreu à equipe de desenvolvimento da Sun que uma linguagem independente de plataforma, segura e robusta como a que estava sendo desenvolvida para eletrodomésticos caberia como uma luva para uso na Internet, uma vez que um aplicativo gerado nessa linguagem poderia rodar nos diversos tipos de computadores ligados na Internet, rodando qualquer sistema operacional, de PCs rodando OS/2 a estações RISC rodando AIX Unix, ou SparcStations rodando Solaris, os programas escritos nessa linguagem que viria a ser conhecida por Java seriam o modelo para qualquer aplicativo Web.

Com o novo ânimo trazido pelo advento da WWW, a equipe da Sun desenvolveu um browser totalmente escrito em Java, tendo-o terminado no início de 1995 e denominado-o HotJava. O grande diferencial de HotJava para outros browsers da época (como o Mosaic, o Netscape Navigator e o Lynx) é que ele permitia a inserção de programas escritos em Java dentro de páginas HTML comuns. HotJava como browser foi um fiasco comercial, mas abriu os olhos dos desenvolvedores para um fato muito importante: as páginas HTML estariam fadadas a serem estáticas e sem ações embutidas em si, não houvesse uma linguagem padrão na qual fossem escritos programas que pudessem ser embutidos nas páginas Web. HotJava demonstrou que isso era possível (ou seja, incluir um programa, no caso escrito em Java, em uma página HTML rodando em um browser preparado para dar suporte à execução do programa, no caso o próprio HotJava). O grande “pulo do gato” de Java veio logo a seguir, quando a Netscape anunciou que sua próxima versão do browser Navigator, iria dar suporte a aplicativos Java embutidos em documentos HTML. Em seguida, a Microsoft anunciou o mesmo para o seu Internet Explorer. E Java estourou no mundo, a Sun contabilizava inúmeros downloads de seu JDK, diversas empresas desenvolveram IDEs para a programação em Java, e vieram JavaScript, JavaBeans, a briga deste com ActiveX, e…

E a Internet jamais foi a mesma.

Características do Java

Java é uma linguagem de alto nível, com sintaxe extremamente similar à do C++, e com diversas características herdadas de outras linguagens, como Smalltalk e Modula-3. É antes de tudo uma linguagem simples (é mesmo!), fortemente tipada, independente de arquitetura, robusta, segura, extensível, bem estruturada, distribuída, multithreaded e com garbage collection.

SIMPLICIDADE: Java, é muito parecida com C++, mas muito mais simples. Java não possui sobrecarga de operadores, structs, unions, aritmética de ponteiros, herança múltipla, arquivos .h, diretivas de pré-processamento e a memória alocada dinamicamente é gerenciada pela própria linguagem, que usa algoritmos de garbage collection para desalocar regiões de memória que não estão mais em uso.

ORIENTAÇÃO A OBJETOS: Ao contrário de C++, que é uma linguagem híbrida, Java é uma linguagem orientada a objetos que segue a linha purista iniciada por Smalltalk. Com a exceção dos tipos básicos da linguagem (int, float, etc.), a maior parte dos elementos de um programa Java são objetos. (A título de curiosidade, Smalltalk já é considerada puramente O.O. [orientada a objeto], pois absolutamente tudo em Smalltalk são objetos, não há tipos básicos em Smalltalk.) O código é organizado em classes, que podem estabelecer relacionamentos de herança simples entre si. Somente a herança simples é permitida em Java. (Há uma forma de “simular” herança múltipla em Java com o uso interfaces, que veremos em outros passos do curso).

PROCESSAMENTO DISTRIBUÍDO: Chamadas a funções de acesso remoto (sockets) e os protocolos Internet mais comuns (HTTP, FTP, Telnet, etc.) são suportadas em Java, de forma que a elaboração de aplicativos baseados em arquiteturas cliente-servidor é facilmente obtida.

MULTITHREADING: A maior parte dos sistemas operacionais hoje no mercado dão suporte à multitarefa, como o Windows, OS/2 e Unix, ou seja, o computador é capaz e executar diversas tarefas ao mesmo tempo. Cada um desses sistemas tem o seu tipo de multitarefa, preemptiva ou não, com ou sem multiprocessamento. Java tem o suporte a multitarefa embutido na linguagem: um programa Java pode possuir mais de uma linha de execução (thread). Por exemplo, cálculos extensos, que em geral demandam muito tempo do processador, podem ser escritos em uma thread, e a parte de interface com o usuário, que depende mais dos periféricos de I/O que do processador, pode ser executada em outra thread. Programação concorrente em geral é uma tarefa difícil, mas Java fornece diversos recursos de sincronização de processos que tornam a programação mais simples.

EXCEÇÕES: Todo programador em geral está bastante acostumado com o computador “travando” por causa de um erro em um programa. Em C++, por exemplo, a simples tentativa de abertura de um arquivo inexistente pode obrigar ao programador a reiniciar o computador. Programas Java, contudo, não “dão pau” no computador, já que a máquina virtual Java faz uma verificação em tempo de execução quanto aos acessos de memória, abertura de arquivos e uma série de eventos que podem gerar uma “travada” em outras linguagens, mas que geram exceções em programas Java. Em geral, ao escrever programas Java utilizando-se de herança de classes predefinidas, força-se em geral ao programador escrever algumas rotinas de tratamento de exceção, um trabalho que, se de início pode parecer forçado, irá poupar o programador de bastante dor de cabeça no futuro.

GARBAGE COLLECTOR: Em Java, os programadores não necessitam preocupar-se com o gerenciamento de memória como em C++. Em C++, todo bloco de memória alocado dinamicamente (com new, malloc ou função similar) deveria ser liberado quando não fosse mais usado (com free, delete e parentes próximos). Isso acarretava diversos problemas mesmo ao programador mais experiente, que tinha que manter sempre um controle das áreas de memória alocadas para poder liberá-las em seguida. Java, ao contrário, utiliza-se de um conceito já explorado por Smalltalk, que é o de garbage collection (coleta de lixo). Sua função é a de varrer a memória de tempos em tempos, liberando automaticamente os blocos que não estão sendo utilizados. Se por um lado isso pode deixar o aplicativo um pouco mais lento, por manter uma thread paralela que dura todo o tempo de execução do programa, evita problemas como referências perdidas e avisos de falta de memória quando sabe-se que há megas e megas disponíveis na máquina.

MACHINE INDEPENDENT: Uma das características de Java que tornou-a ideal para seu uso na elaboração de aplicativos distribuídos foi a sua independência de plataforma. Afinal, a Internet é uma grande “salada” de computadores de todos os tipos, dotados dos mais diversos sistemas operacionais e ambientes gráficos que se possa imaginar. Java consegue essa independência devido ao fato de que o compilador Java não gera instruções específicas a uma plataforma, mas sim um programa em um código intermediário, denominado bytecode, que pode ser descrito como uma linguagem de máquina destinada a um processador virtual que não existe fisicamente. Na realidade, existe. A Sun está desenvolvendo, já com alguns resultados práticos, microprocessadores cuja linguagem nativa é o Java: o picojava, microjava e ultrajava. O código Java compilado pode então ser executado por um interpretador de bytecodes, a JVM – Java Virtual Machine, que é um emulador de processador.

Arquitetura e Ferramentas

Como compilar e executar um programa Java?

O processo de compilação de um programa Java é feito de acordo com os seguintes passos: o código fonte (extensão .java) é compilado e armazenado em um arquivo de extensão .class. De cara, percebe-se a impossibilidade de utilizar-se de DOS como sistema operacional para a elaboração de aplicativos Java, uma vez que o mesmo tem um suporte limitado a nomes de arquivos. Mas essa limitação quanto ao nome dos arquivos é somente a razão aparente da não-portabilidade de Java para DOS. A grande razão reside no fato de que Java foi projetada para sistemas de 32 bits, e só foram escritas Máquinas Virtuais Java para ambientes de 32 bits.

A portabilidade de Java depende fortemente da existência de JVMs que rodem em diversas plataformas. Um programa Java rodará em um computador se existir uma JVM que nele rode. Ao contrário de programas Java, as JVMs devem ser programas feitos e compilados para máquinas específicas, de forma que serão as JVMs as responsáveis pela tradução de bytecodes Java para as linguagens nativas das máquinas.

O conjunto de instruções da Máquina Virtual Java é otimizado para ser pequeno e compacto, tendo sido elaborado para ser uma espécie de processador RISC virtual: a rapidez da interpretação às vezes é sacrificada para garantir esse reduzido conjunto de instruções.

O compilador mais utilizado para a transformação de arquivos-fonte java (.java) em arquivos de bytecodes é o javac da Sun (há diversos outros compiladores no mercado, mas o javac foi o primeiro e é o mais popular ainda hoje).

Uma vez gerado o arquivo .class, ele deve ser passado à JVM instalada no computador. No caso mais comum, a JVM utilizada é a distribuída pela Sun em seu JDK (Java Developers Kit), denominada java. Isso no caso de aplicativos. No caso de Applets, os browsers que suportam Java já contêm em si uma JVM que interpreta os bytecodes das Applets.

Ferramentas para desenvolvimento em Java

A Sun, ao lançar a linguagem Java, pôs à disposição gratuitamente o pacote JDK – Java Developer’s Kit, que inclui, entre outros:

Javac – o compilador de arquivos .java para bytecodes .class;

Java – a JVM específica para a plataforma;

Appletviewer – visualizador de applets, sem a necessidade de execução das mesmas num browser.

Diversas empresas desenvolveram ambientes para programação em Java, mas por enquanto nenhum deles firmou-se no mercado. Alguns IDEs (Integrated Development Environments) disponíveis para shareware ou para compra são mostrados a seguir:

Microsoft Visual J++ – A Microsoft, que de início menosprezou todo o potencial da Internet, e que subestimou Java como uma linguagem promissora, agora “retomou o bonde” e tenta, com o seu VJ++, estabelecer um padrão para IDEs Java. Contudo, o VJ++ tem mecanismos intrincados de instalação, consome muito espaço em disco e exige a presença do Internet Explorer no computador.

Symantec Visual Café – A Symantec foi uma das poucas a acertarem em ambientes para Java. O seu Symantec Café fez grande sucesso em 1996, e o Visual Café parece ser bastante promissor. O ambiente de programação lembra o de Visual Basic.

Asymetrix SuperCede – Na tentativa de desenvolver um compilador para Java, a Asymetrix desenvolveu o SuperCede, que peca por ferir um dos principais conceitos de Java: a portabilidade. SuperCede possui um compilador próprio que não gera bytecodes, mas sim código executável, na tentativa de ganho de performance.

Java e a Internet

Como sabemos, a Internet é uma gigantesca “rede” (conceitualmente falando) que liga “zilhares” de computadores entre si. É uma rede heterogênea, já que diversos tipos de computadores estão ligados a ela. Todos esses computadores utilizam-se do protocolo TCP/IP para comunicarem-se. Como eles são distintos, eles precisam de uma linguagem que não esteja necessariamente amarrada a uma plataforma de hardware/software específica. Como já vimos, Java mostra-se ideal quanto a esse fator.

Uma vez que os programa Java são transmitidos como bytecodes, eles podem rodar em qualquer computador sem necessitar uma nova recompilação, independente da plataforma na qual ele será executado. Programas Java sempre são carregados no computador cliente e nele executado.

Há dois tipos básicos de programas Java: Aplicativos, que são programas como outros quaisquer, e Applets, programas especialmente confeccionados para executarem dentro de uma página HTML. Ao abrir uma página HTML que tenha inserida em si uma applet Java, esta é automaticamente descarregada para seu computador e executada. Daí vem a pergunta: há riscos de um vírus infectar o seu computador cliente??? Isso não ocorre, devido a uma série de limitações que os projetistas de Java impuseram às applets, por razões de segurança puramente, de forma que nenhuma applet Java seja capaz de “roubar” informações ou danificar dados do computador. A razão de toda essa segurança reside no fato de que programas Java são compilados em bytecodes que são verificados. Instruções bytecode são muito similares a outros conjuntos de instruções projetados para plataformas específicas, com a diferença de que bytecodes são conferidos através de informações adicionais que eles carregam em si informando a legitimidade ou não do arquivo.

Programas C++ em geral chamam funções por endereço. Como o endereço é um número simples que pode ser construído de qualquer forma, o programa pode utilizar-se de qualquer número para executar uma função. Java, ao contrário, tem uma abordagem muito diferente. Métodos e variáveis não são acessados por endereço, mas sim por nomes. É a esse processo de verificar quais métodos e variáveis que serão realmente usados e que chamamos verificação, que é necessário para garantir que os bytecodes não sofram qualquer adulteração e que continuem obedecendo às restrições de Java. Uma vez verificado o bytecode, a JVM irá traduzir enfim os nomes de funções para endereços.

Moved to http://infoachei.com.br/
Thanks for visits!

Moved to http://infoachei.com.br/
Thanks for visits!

Java – JSE, JEE, JME – O que é?

Introdução

Java é uma linguagem de programação que permite o desenvolvimento de aplicações para uma série de plataformas. É possível ter software Java desde de dispositivos pequenos, como telefones celulares, até computadores de grande porte, como os mainframes, por exemplo. Devido a essa característica, a linguagem Java conta com três conhecidos ambientes de desenvolvimento: o JSE (ou J2SE), o JEE (ou J2EE) e o JME (J2ME). Este artigo mostrará brevemente o que cada um faz e, conseqüentemente, o que os diferem.

Ambiente de desenvolvimento?

A linguagem Java vem sofrendo aprimoramentos desde o seu lançamento. O aumento no número de aplicações e, conseqüentemente, o aumento no número de bibliotecas padrão da linguagem, levou à criação de três divisões na plataforma a partir da versão 2 da linguagem: J2SE, J2EE e J2ME. Essas divisões são chamadas por alguns de ambientes de desenvolvimento. Esse é o termo adotado aqui no InfoWester. No entanto, há quem as denomine profile, plataforma, versão, entre outros.

É importante ressaltar que, a partir de 2006, passou-se a utilizar uma nova nomenclatura para essas plataformas. O número 2 foi retirado das siglas que as representam. Assim, estas passaram a ser JSE, JEE e JME.

JSE

O JSE (Java Standard Edition) é o ambiente de desenvolvimento mais utilizado. Isso porque seu uso é voltado a PCs e servidores, onde há bem mais necessidade de aplicações. Além disso, pode-se dizer que essa é a plataforma principal, já que, de uma forma ou de outra, o JEE e o JME tem sua base aqui. Pode-se dizer também que esses ambientes de desenvolvimento são versões aprimoradas do JSE para as aplicações a que se propõem.

Por ser a plataforma mais abrangente do Java, o JSE é a mais indicada para quem quer aprender a linguagem.

JEE

O JEE (Java Enterprise Edition) é a plataforma Java voltada para redes, internet, intranets e afins. Assim, ela contém bibliotecas especialmente desenvolvidas para o acesso a servidores, a sistemas de e-mail, a banco de dados, etc. Por essas características, o JEE foi desenvolvido para suportar uma grande quantidade de usuários simultâneos.

A plataforma JEE contém uma série de especificações, cada uma com funcionalidades distintas. Entre elas, tem-se:

– JDBC (Java Database Connectivity), utilizado no acesso a banco de dados;

– JSP (Java Server Pages), um tipo de servidor Web. Grossamente falando, servidores Web são as aplicações que permitem a você acessar um site na internet;

– Servlets, para o desenvolvimento de aplicações Web, isto é, esse recurso “estende” o funcionamento dos servidores Web, permitindo a geração de conteúdo dinâmico nos sites.

JME

O JME (Java Micro Edition) é o ambiente de desenvolvimento para dispositivos móveis ou portáteis, como telefones celulares e palmtops. Como a linguagem Java já era conhecida e a adaptação ao JME não é complicada, logo surgiram diversos tipos de aplicativos para tais dispositivos, como jogos e agendas eletrônicas. As empresas saíram ganhando com isso porque, desde que seus dispositivos tenham uma JVM (Java Virtual Machine – Máquina Virtual Java), é possível, com poucas modificações, implementar os aplicativos em qualquer aparelho, sendo o único limite a capacidade do hardware.

A plataforma JME contém configurações e bibliotecas trabalhadas especialmente para a atuação em dispositivos portáteis. Assim, o desenvolvedor tem maior facilidade para lidar com as limitações de processamento e memória, por exemplo. Um exemplo disso é a configuração chamada CLDC (Connected Limited Device Configuration), destinada a dispositivos com recursos de hardware bastante limitados, como processadores de 16 bits e memórias com 512 KB de capacidade. Essa configuração contém uma JVM e um conjunto básico de bibliotecas que permite o funcionamento da aplicação Java em dispositivos com tais características.

A imagem a seguir mostra um jogo em Java que roda em dois dispositivos móveis diferentes (tirada do site http://www.msmobile.com):

Dispositivos diferentes rodando a mesma aplicação

Complemento: JRE

Se você não é e não pretende ser um desenvolvedor, basta ter uma JRE (Java Runtime Environment) em seu computador para executar aplicações nesta linguagem. Uma JRE é composta de uma JVM e de um conjunto de bibliotecas que permite a execução de softwares em Java.

Um fato interessante a ser contado, é que uma JRE (pelo menos a fornecida pela Sun) contém o chamado “Java Plugin”. Esse recurso permite a execução de aplicações em Java em navegadores de internet sem suporte à linguagem ou que suportam, mas com alguma particularidade.

Finalizando

Como pode ser visto neste artigo, a tecnologia Java é bastante abrangente e permite o desenvolvimento de soluções para uma infinidade de aplicações. São tantos recursos, que até mesmo desenvolvedores experientes podem se confundir em um determinado momento. Felizmente, a comunidade Java é organizada e não é difícil encontrar auxílio em sites ou fóruns especializados. Caso queira mais informações sobre Java, visite o site oficial: java.sun.com.

Fonte:

http://www.infowester.com/versoesjava.php

 

Publicado em 1. Leave a Comment »

Redes Neurais Artificiais – O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!
Introdução

O estudo das redes neurais artificiais é algo fascinante e esse fascínio aumenta à medida que se tem mais conhecimento sobre o assunto. Trata-se de um conceito de extrema importância da computação, responsável pela solução de muitos problemas complexos. Este artigo explicará o que são redes neurais artificiais e abordará de maneira básica seu funcionamento.

O que são redes neurais artificiais

Redes neurais artificiais são um conceito da computação que visa trabalhar no processamento de dados de maneira semelhante ao cérebro humano. O cérebro é tido como um processador altamente complexo e que realiza processamentos de maneira paralela. Para isso, ele organiza sua estrutura, ou seja, os neurônios, de forma que eles realizem o processamento necessário. Isso é feito numa velocidade extremamente alta e não existe qualquer computador no mundo capaz de realizar o que o cérebro humano faz.

Nas redes neurais artificiais, a idéia é realizar o processamento de informações tendo como princípio a organização de neurônios do cérebro. Como o cérebro humano é capaz de aprender e tomar decisões baseadas na aprendizagem, as redes neurais artificiais devem fazer o mesmo. Assim, uma rede neural pode ser interpretada como um esquema de processamento capaz de armazenar conhecimento baseado em aprendizagem (experiência) e disponibilizar este conhecimento para a aplicação em questão.

Funcionamento das redes neurais artificiais

As redes neurais artificiais são criadas a partir de algoritmos projetados para uma determinada finalidade. É impossível criar um algoritmo desse sem ter conhecimento de modelos matemáticos que simulem o processo de aprendizado do cérebro humano. Por este ser um artigo de introdução a este assunto, abordaremos uma explicação conceitual eliminando ao máximo os princípios matemáticos naturalmente relacionados.

Basicamente, uma rede neural se assemelha ao cérebro em dois pontos: o conhecimento é obtido através de etapas de aprendizagem e pesos sinápticos são usados para armazenar o conhecimento. Uma sinapse é o nome dado à conexão existente entre neurônios. Nas conexões são atribuídos valores, que são chamados de pesos sinápticos. Isso deixa claro que as redes neurais artificiais têm em sua constituição uma série de neurônios artificiais (ou virtuais) que serão conectados entre si, formando uma rede de elementos de processamento.

Tendo uma rede neural montada, uma série de valores podem ser aplicados sobre um neurônio, sendo que este está conectado a outros pela rede. Estes valores (ou entradas) são multiplicados no neurônio pelo valor do peso de sua sinapse. Então, esses valores são somados. Se esta soma ultrapassar um valor limite estabelecido, um sinal é propagado pela saída (axônio) deste neurônio. Em seguida, essa mesma etapa se realiza com os demais neurônios da rede. Isso quer dizer que os neurônios vão enfrentar algum tipo de ativação, dependendo das entradas e dos pesos sinápticos.

Existem várias formas de se desenvolver uma rede neural. Ela deve ser montada de acordo com o(s) problema(s) a ser(em) resolvido(s). Em sua arquitetura são determinados o número de camadas usadas (as camadas são formadas por neurônios), a quantidade de neurônios em cada camada, o tipo de sinapse utilizado, etc.

Representação de uma rede neural

O aprendizado

O processo de aprendizagem das redes neurais é realizado quando ocorrem várias modificações significantes nas sinapses dos neurônios. Essas mudanças ocorrem de acordo com a ativação dos neurônios. Se determinadas conexões são mais usadas, estas são reforçadas enquanto que as demais são enfraquecidas. É por isso que quando uma rede neural artificial é implantada para uma determinada aplicação, é necessário um tempo para que esta seja treinada.

Existem, basicamente, 3 tipos de aprendizado nas redes neurais artificiais:

Supervisionado: neste tipo, a rede neural recebe um conjunto de entradas padronizados e seus correspondentes padrões de saída, onde ocorrem ajustes nos pesos sinápticos até que o erro entre os padrões de saída gerados pela rede tenham um valor desejado;

Não-supervisionado: neste tipo, a rede neural trabalha os dados de forma a determinar algumas propriedades dos conjunto de dados. A partir destas propriedades é que o aprendizado é constituído;

Híbrido: neste tipo ocorre uma “mistura” dos tipos supervisionado e não-supervisionado. Assim, uma camada pode trabalhar com um tipo enquanto outra camada trabalha com o outro tipo.

Aplicações para redes neurais

As redes neurais artificiais podem ser aplicadas para resolver uma grande quantidade de problemas. Um bom exemplo de aplicação são softwares de reconhecimento de voz, que precisam aprender a conhecer a voz de determinadas pessoas. Redes neurais também são usados em rôbos que desarmam bombas. Se você já usou um scanner para retirar um texto de um jornal, por exemplo, saiba que o software de OCR, que é responsável por isso, precisa aprender a reconhecer caracteres da imagem. Logo, ele certamente possui algoritmos de rede neural. Existem até alguns softwares que aprendem a identificar SPAMs em e-mails e apagá-los (e conseguem uma margem aceitável de acertos). Mas no geral as redes neurais são usadas principalmente em aplicações mais complexas, como em usinas, mercado financeiro, etc.

Finalizando

É claro que as redes neurais artificiais abordam outros conceitos que não foram citados aqui, afinal este é um artigo de introdução e o assunto é complexo para ser detalhado no InfoWester. Tanto que existem até livros sobre redes neurais. Se você tem interesse pelo assunto, as redes neurais costumam ser abordadas em cursos de computação de universidades. Portanto, você pode estudar ciência da computação e se especializar nesta área, por exemplo.

Quando uma rede neural artificial é implementada, isso não significa que ela terá 100% de acerto nas situações em que trabalha. Este é um assunto há tempos sendo estudado, mas que ainda sofre pesquisas e certamente terá ainda muitas inovações. O sonho de se ter uma máquina tão poderosa quanto o cérebro humano é o que certamente idealizou este assunto, mas ainda há muito trabalho a ser feito.

As redes neurais artificiais podem ser usadas em muitas aplicações críticas. E apesar de ser um assunto complexo, é como foi dito no início deste artigo: é algo fascinante e este fascínio aumenta à medida que se tem mais conhecimento sobre o assunto.

Fonte:

http://www.infowester.com/redesneurais.php

Moved to http://infoachei.com.br/
Thanks for visits!

Publicado em 1. Leave a Comment »

DNS (Domain Name System) O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!
Introdução

A internet possui uma infinidade de sites e, para acessá-los, você digita um endereço no campo correspondente do seu navegador, por exemplo, http://www.google.com.br, http://www.infowester.com e http://www.ealecrim.net. No entanto, o que o computador faz para encontrar esses sites quando você solicita? É neste ponto que “entra em cena” a tecnologia DNS, que será explicada a seguir.

O que é DNS

DNS é a sigla para Domain Name System (Sistema de Resolução de Nomes). Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) que permite acessar computadores sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP.

Cada site da internet é acessível por um endereço IP. O problema é que existem tantos que é praticamente impossível decorar o IP de cada um. Imagine que ao invés de digitar http://www.infowester.com para acessar este site, você tivesse que informar ao navegador o endereço 200.178.123.25. Imagine então que você tivesse que fazer o mesmo para cada site que você visita, como Google, UOL, Yahoo, etc. Como você deve ter percebido, ia ser trabalhoso acessar cada um desses sites através do endereço IP, pois além de decorá-los, você teria que consultar uma relação de IPs toda vez que quisesse acessar um site novo.

Para lidar com esse problema é que o DNS é usado. É ele que permite o uso de nomes (também chamados de domínios) ao invés dos IPs no acesso aos sites. Basicamente, na internet, o DNS é um conjunto de grandes bancos de dados distribuídos em servidores de todo o mundo que indicam qual IP é associado a um nome (ou seja, um endereço do tipo http://www.nomedosite.com).

Funcionamento do DNS

Como já foi dito, os serviços de DNS da internet são um conjunto de bancos de dados espalhados em servidores de todo o mundo. Esses bancos de dados têm a função de indicar qual IP está associado a um nome de um site. Quando você digita um endereço em seu navegador, por exemplo, http://www.infowester.com, seu computador solicita aos servidores de DNS de seu provedor de internet que encontre o endereço IP associado a http://www.infowester.com. Se os servidores não tiverem essa informação, ele se comunica com outros que possam ter.

Para facilitar esse processo, os nomes dos sites são divididos hierarquicamente, como mostra a imagem abaixo:

Esquema - DNS

Note que dentro de cada domínio (.com, .net, .gov) existem outras subdivisões. Por exemplo, dentro de .com há .com.br, .com.fr, .com.ar, etc.

Com essas divisões, é possível atribuir cada uma das terminações a uma entidade que as gerencie. Assim, para você registrar um domínio .br, é necessário fazer a solicitação ao Comitê Gestor da Internet no Brasil, órgão que controla essa terminação. Para registrar um domínio que termine com .fr é necessário procurar a entidade que controle esse tipo.

O servidor raiz – que pode ser entendido como o servidor principal no controle do DNS – é representado por um ponto e, seguindo a ordem de pesquisa, sua inserção é feita no final do nome. Assim, http://www.infowester.com deveria ficar como:

http://www.infowester.com.

Repare que se você digitar o endereço exatamente como está acima, o navegador entrará no site normalmente. No entanto, não é necessário incluir o ponto no final, pois os serviços envolvidos, assim como os browsers, sabem de sua existência e o executam automaticamente.

Para melhor entender o DNS, vamos ao seguinte exemplo: suponha que você queira visitar o site http://www.nomedosite.com.br. Para isso, primeiramente o servidor raiz é verificado e este indica o servidor de terminação .br, que por sua vez, indica o servidor que cuida do domínio nomedosite.com.br que informa qual o seu IP, ou seja, qual o servidor onde o site em questão está localizado.

Cache de DNS

Suponha que você tenha visitado um site que nunca tenha sido resolvido pelo serviço de DNS de seu provedor, de forma que este tenha que fazer uma pesquisa em outros servidores de DNS (através da pesquisa hierárquica). Para evitar que essa pesquisa tenha que ser feita novamente quando outro usuário do provedor tentar acessar o mesmo site, o serviço de DNS guarda a informação da primeira consulta. Assim, em outra solicitação, ele já saberá qual o IP associado ao site em questão. Esse procedimento é conhecido como “cache de DNS”.

As informações do cache são armazenadas por um determinado período de tempo através de um parâmetro conhecido por TTL (Time-to-Live). Este é utilizado para evitar que as informações gravadas se tornem desatualizadas. O período de tempo do TTL varia conforme o servidor e seu administrador.

Breve histórico

Quando a internet ainda era uma ferramenta de uso militar e não possuía muitos computadores, o acesso aos nomes era possível graça a um arquivo de nome hosts.txt. Esse arquivo continha os endereços de cada nome existente. Com o crescimento da internet, esse arquivo passou a crescer de igual forma e chegou ao ponto de ser tão grande que causava atraso nas atualizações. Por volta de 1983, o esquema hoje conhecido como DNS tomou forma para resolver esse problema. Sua primeira especificação pode ser vista aqui.

Finalizando

A utilização do DNS não se limita à internet. Esse recurso pode (e é) utilizado em redes locais, extranets, etc. Sua implementação pode ser feita em praticamente qualquer sistema operacional, sendo muito usual nos sistemas baseados em Unix e no Windows.

Fonte:

http://www.infowester.com/dns.php

Moved to http://infoachei.com.br/
Thanks for visits!

Publicado em 1. Leave a Comment »

PHP – O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!

Moved to http://infoachei.com.br/
Thanks for visits!

Até algum tempo atrás, a Internet era composta basicamente de páginas estáticas, ou seja, páginas que dia após dia tinham o mesmo conteúdo, e que não interagiam com seus visitantes. Isto impedia que atitudes mais profissionais fossem tomadas nestes sites, pois sem a interatividade não era possível que empresas trocassem informações com seus clientes, com outras empresas e consigo mesma (troca de dados com departamentos, entre a empresa e seus vendedores, etc.). Em vista disto começaram a surgir algumas ferramentas que “deram vida” à Internet: Perl, TCL e outras linguagens padrão CGI (Common Gateway Interface).

Porém, essas linguagens eram limitadas quanto ao seu uso e eram pouco amigáveis. Mas estas iniciativas permitiram que outras linguagens fossem desenvolvidas exclusivamente para Internet. Entre elas, podemos citar: PHP, ASP, Java, JavaScript, VBScript e outras, sendo que algumas destas linguagens rodam no lado servidor (Server-Based) e outras rodam no lado cliente (Client-Based).

O PHP em si

PHP, atualmente, é a sigla para Hypertext Preprocessor, mas originalmente significou Personal Home Page, e se destaca entre as linguagens citadas anteriormente por ser multiplataforma (enquanto outras rodam somente em uma plataforma), ou seja, aceita vários sistemas operacionais, como Windows, Unix, Linux, etc. Além disso, ela é de fácil aprendizado, pois permite a conexão direta com uma grande quantidade de bancos de dados relacionais, enquanto outras ferramentas precisam de drivers ODBC para realizar a mesma tarefa. Entre os bancos de dados com conexão direta podemos citar: Oracle, Sybase, Informix, Postgresql, MySQL, mSQL, etc. Para outros bancos de dados, o PHP disponibiliza acesso via ODBC. E finalmente, o PHP é totalmente gratuito e pode ser baixado por meio de seu site oficia: www.php.net.

A linguagem PHP, de grosso modo, é uma combinação de linguagem de programação e servidor de aplicações. Você pode programar em PHP como em qualquer outra linguagem, definindo variáveis, criando funções, realizando loops, enfim, fazer tudo que é necessário e usado no mundo da programação.

Uma breve história do PHP

O PHP foi criado originalmente por Rasmus Lerdorf em meados de 1994 e escrito em Perl, sendo reescrito depois em C para incluir acesso a bancos de dados. Com a propagação dessa ferramenta pelo mundo virtual, Rasmus disponibilizou alguma documentação do software e batizou-o oficialmente de PHP v.1.0. Com a crescente utilização do PHP, mais e mais recursos foram incluídos (loops e arrays, por exemplo), tornando a linguagem cada vez mais potente. Nessa época, outros programadores juntaram-se a Rasmus, contribuindo sensivelmente para o aprimoramento da linguagem, entre os quais podemos citar os israelenses Zeev Suraski e Andi Gutmans (com certeza os maiores contribuidores), e foi assim que nasceu o PHP v.3.0. No momento em que este artigo foi atualizado, o PHP já se encontrava na versão 5.

 

Principais características do PHP

Código Aberto: Todo o código fonte do PHP está disponível;
Custo Zero: O PHP é gratuito. Basta ir ao site oficial e fazer o download;
Multiplataforma: O PHP pode rodar sobre o Unix, Linux, Windows, etc;
Eficiência: O PHP consome poucos recursos do servidor, permitindo que programas complexos sejam desenvolvidos, sem que isto implique em grande demora na sua execução. Além disso, o PHP como módulo nativo do servidor WEB, evita chamadas externas, o que o torna ainda mais eficiente;
Acesso a Bancos de Dados: Podemos acessar diretamente os principais bancos de dados utilizados atualmente e qualquer banco de dados do mercado por meio de ODBC;
Processamento de Imagens: O PHP pode criar imagens dinamicamente e enviá-las ao browser do usuário.

Além destas características, podemos citar ainda a capacidade de ler informação do padrão XML, processamento de arquivos (leitura e gravação, tanto no formato texto quanto binário), a manipulação de variáveis complexas, a utilização de funções e classes e geração de código JavaScript, ou outro qualquer para processamento no lado cliente, a manipulação de e-mails, o gerenciamento de documentos PDF e muitas outras características que tornam o PHP uma linguagem realmente potente e indicada para a construção de sites dinâmicos.

Fonte:

http://www.infowester.com/php.php

Publicado em 1. Leave a Comment »