Nenhum produto no carrinho.

Contacts

92 Bowery St., NY 10013

thepascal@mail.com

+1 800 123 456 789

Categoria: Desenvolvimento

desenvolvimento
Desenvolvimento

Conhecendo as API’s do Bluevia

Resolvi estudar as novas versões de API que a Bluevia disponibilizou no site deles. Umas dessas me chamou um pouco mais a atenção, que foi a Voice API. Está em versão Alpha ainda, mas gostei do que possibilita criar.

Hoje com a Bluevia temos:

API de SMS que permite enviar e receber mensagens de textos entre celulares usando a rede da operadora ;
API MMS que permite troca de arquivo multimídias (fotos e vídeos), entre celulares utilizando a rede da operadora ;
API de payment onde se pode fazer cobranças usando crédito do celular da pessoa ;
E API Voice, onde é possível integrar conversas de áudio dentro de sua aplicação.

Nem todas estão disponíveis no Brasil ainda, mas eles prometem que todas estarão até o fim do ano.

Para começar a usar o Bluevia, é preciso se cadastrar: https://labs.bluevia.com/
Depois do cadastro, você entra no seu dashboard, onde terá acesso a todas as APIs. Mesmo as que ainda não funcionam no Brasil.
O mais legal do Bluevia é que você gera receita quando seu aplicativo envia e recebe dados usando a rede da operadora, e eles estão dispostos a te dar parte dessa receita. Só que para isso, é preciso desenvolver aplicativos legais e que as pessoas utilizem.
Eu já desenvolvi alguns aplicativos e gostei muito do resultado.

Para desenvolver qualquer coisa, é necessário antes baixar o pacote com a API que você vai usar. Podemos baixar nesse site: https://labs.bluevia.com/en/page/tech.APIs
Depois precisamos registrar a aplicação dentro do Bluevia. Você sobe um ícone, fala sobre o que ela faz e quais funcionalidades irá usar.
Após isso, deve pegar um token para sua tela e pronto, já podemos usá-la.
Existem vários exemplos de como usá-la no próprio site, mas aqui irei falar um pouco do que usei em meus aplicativos.

Com a API de SMS, acho que a aplicação mais criativa que fiz foi um aplicativo de enquete. Nele eu enviava a enquete para meus amigos e registrava todos os votos deles, para no final dar o resultado do vencedor.

Com a API de MMS, a pessoa enviava uma imagem, meu servidor recebia e a processava com algum efeito aleatório e retornava para o celular da pessoa. O mais legal eram os efeitos engraçados que deixei para gerar essas imagens, então muita gente mandava só para ver o que iria acontecer.

Com a API de Pagamento fiz uma forma de compra de moeda virtual para um jogo on-line, mas infelizmente não foi ao ar esta aplicação.

Com a API de VOICE, já fiz alguns testes, apesar de não poder usá-la ainda no Brasil. Andei brincando com algumas coisas, e o legal é poder construir um aplicativo web, que é possível ligar para ele e com isso escutar tudo o que você fala. Com isso consegui montar uma interface em que o áudio aparecia escrito no site.

Através da API VOICE é possível também, ligar para alguma pessoa e executar um WAV onde a própria pessoa escuta, como se fosse uma ligação normal. Já pensou nesta possibilidade?
Imagine seu servidor ligando de madrugada, falando que algum serviço está fora, ou seu e-commerce ligando para o cliente e informando qual a situação de entrega do pedido?

Espero ter ajudado com essas dica e que vocês tenham muitas ideias!

desenvolvimento
Desenvolvimento

Web Service para Geolocalização de Ônibus

Hoje vamos montar um webservice em PHP para localizar ônibus.

Atualmente ouve-se falar muito sobre cidades inteligentes e como construir aplicativos que tornem a vida das pessoas mais agradável, e para isso o governo está investindo bastante em TI.

Algumas linhas tiveram um GPS instalado em cada ônibus, e os dados desse GPS vão para o servidor da SPTrans de ip “200.189.189.54“. Para consultar os dados dele, vamos precisar enviar alguns comandos e para isso precisamos saber como o sistema de ônibus está organizado.

Os ônibus funcionam através de corredores, então a primeira coisa a ser feita será identificar esse corredores:

Campo Limpo código 8
Expresso Tiradentes código 9
Inajar de Souza código 3
Parelheiros código 7
Paes de Barros código 1
Pirituba código 2
Santo Amaro código 10

Agora que sabemos o código vamos dar o primeiro comando:

http://200.189.189.54/InternetServices/ParadasPorCorredor?cb=jQuery172021167572867125273_1359796403660&codigoCorredor={codigo}

nome

Vamos analisar agora o retorno que recebemos em json:

{“CodigoParada”:700016474,”Endereco”:”R CRUZEIRO\/ R ANHANGUERA”,”Latitude”:-23.523134,”Longitude”:-46.65309,”Nome”:”ANHANGUERA B\/C”

Onde os campos são:

CodigoParada = código do próximo ponto que ele vai parar
Endereco = endereço do próximo cruzamento
Latitude = ponto de lat dele
Longitude = ponto de long dele
Nome = qual o nome desse ônibus

E recebemos os dados de todos os ônibus daquela linha no momento. Um dado importante que podemos tirar com isso, é saber exatamente quantos ônibus temos circulando naquele corredor no momento.

Agora basta selecionar um ônibus na lista e pronto! Podemos fazer uma nova consulta e verificar quais os dados da próxima parada e medir quanto tempo falta para chegar lá. No caso o comando seria esse:

http://200.189.189.54/InternetServices/Previsao?cb=jQuery172032039905060082674_1359795074526&codigoParada={código da próxima parada }

nome

Com esse comando, podemos descobrir muitas coisas e se analisarmos bem, existem alguns dados valiosos. Como quais são os pontos que este ônibus passa, qual a hora de chegada prevista para cada ponto, quais os pontos de lat e log e qual a hora prevista para o ônibus terminar o trajeto.

Com todas essas informações, podemos construir muitos aplicativos que podem nos ajudar a ter uma cidade melhor.

desenvolvimento
Desenvolvimento

SportBarCamp, o aplicativo mobile com sistema de envio de SMS

Esse aplicativo tem uma mecânica bem simples: cadastrar seus amigos separando-os por times e depois enviar SMS em massa para todos. Só que ao invés de escolher um amigo, você escolhe um time para enviar.

Vamos para a prática!

A primeira coisa foi definir a mecânica das interfaces para o aplicativo. Nesse caso, para deixar tudo bem separado. Criei todas as telas em xmls usando a própria lib do android.

nome

Depois de montar os botões e todo o resto, criamos um arquivo xml chamado inicio.xml. Esse arquivo vai ser a tela inicial.

O xml inicial ficaria assim:

android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”@drawable/fundo”
android:orientation=”vertical” >

Aonde nós informamos um id para ele e setamos um fundo, logo em seguida vamos colocar alguns botões. Para colocar um botão:

<ImageView
android:id=”@+id/imageView3″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentLeft=”true”
android:onClick=”sms”
android:src=”@drawable/btnsms” />

Nesse caso inserimos um elemento dentro do layout, no qual informamos as propriedades, tamanho e tipo de obj.

Para simplificar este aplicativo resolvi criar um xml para cada interface, para não mudar sempre o mesmo xml. Isso deixa o aplicativo mais simples, porém ele fica um pouco pesado para o usuário final.

Feito o layout de todas as pages, vamos para o fonte.

Todo aplicativo Android tem uma classe principal que herda uma classe chamada “Activity”. Essa classe gera um processo no celular que fica rodando no aparelho do usuário. Ela tem um método chamado “onCreate”, que sempre vai ser executado quando o usuário inicia o aplicativo. Nele colocaremos tudo o que precisamos para rodá-lo. Então, como estamos trabalhando com uma lista de amigos, vamos verificar se a lista existe e carregar.

No método “Carregar amigos”, vamos ler a lista de amigos que gravamos em um arquivo texto no celular do usuário. Caso esse arquivo não exista, será necessário criá-lo. Caso contrário, apenas verificamos se tem algo nele e carregamos para a variável amigos.

public void carregarAmigos(){
FileInputStream fil = null;
try{
fil = new FileInputStream(this.FILENAMELISTA);
try {
if(fil.available()>1){
byte[] buf = new byte[1024];
try {
fil.read(buf);
} catch (IOException e) {
e.printStackTrace();
}
this.amigos = new String(new String(buf).trim().intern());
}
} catch (IOException e) {
e.printStackTrace();
}
}catch (FileNotFoundException e) {
e.printStackTrace();
}
}

Agora precisamos cadastrar nossos amigos de acordo com a tela que criamos.

nome

Nessa tela vamos cadastrar o nome do time do amigo, o telefone e seu nome. Claro que este aplicativo poderia pegar os contatos do próprio aparelho do usuário, mas a intenção é trabalhar com escrita e busca no aparelho. Em um post futuro mostro como fazer essa adaptação.

Para cadastrar, criamos o método salvarTimeAmigo. Ele vai ser responsável por capturar os dados da interface e gravar no arquivo que criamos.

public void salvarTimeAmigo(View button){
final EditText campoNomeAmigo = (EditText) findViewById(R.id.nomeAmigo);
final EditText campoTelAmigo = (EditText) findViewById(R.id.telAmigo);
final EditText campoTimeAmigo = (EditText) findViewById(R.id.timeAmigo);
if(this.amigos.equals(“”)){
this.amigos = campoNomeAmigo.getText().toString().trim()+”;”+campoTelAmigo.getText().toString().trim()+”;”+campoTimeAmigo.getText().toString().trim();
}else{
this.amigos = this.amigos+”-”+campoNomeAmigo.getText().toString().trim()+”;”+campoTelAmigo.getText().toString().trim()+”;”+campoTimeAmigo.getText().toString().trim()+”-”;
}
FileOutputStream fos = null;
try {
fos = openFileOutput(this.FILENAMELISTA, Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
fos.write(this.amigos.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
this.agenda(button);
setContentView(R.layout.inicio);
}

Notem que logo depois de salvar os dados, chamamos “setContentView(R.layout.inicio);”. Com essa chamada carregamos a interface inicio.xml, e dessa maneira voltamos para a tela principal da aplicação.

Depois dos amigos cadastrados, agora vamos enviar o sms para os amigos.

nome

Para enviar o SMS, precisamos de uma operadora. Para isso, conheço apenas duas opções: fazer algum acordo para usar um sistema delas ou usar o BlueVia. Nesse caso vamos usar a segunda opção.

Nesse post não irei me aprofundar muito a respeito de como o BlueVia funciona. Mas irei explicar o que precisamos para usá-lo.

Para usar o BlueVia, precisamos nos cadastrar no site: http://www.bluevia.com/. Através dele geramos um ticket e um hash para usar a rede de celular, e agora é só baixar a API para Android e implementar nesta aplicação.

Ao pressionar o botão enviar, a nossa classe principal captura os dados dessa interface e envia para a classe SMS. A mesma se conecta com o BlueVia e manda os dados para envio.

Ao iniciar a classe SMS, iniciamos a conexão no construtor dela:

String token = requestToken.getToken();
String secret = requestToken.getSecret();
String verifier = “000000″;
Token accessToken = new Token(token,secret);
this.smsClient = new BlueviaSmsMTClient(context, Mode.LIVE, “token”,”key”, accessToken);
} catch (BlueviaClientException e1) {
e1.printStackTrace();
}

Depois de iniciar a conexão, a nossa classe principal chama o método SMS.enviar, aonde enviamos o SMS para a lista de cliente e para o mesmo time.

SmsMessage sms = new SmsMessage();
sms.setMessage(this.getMsg());
String[] celulares = this.numeros.split(“,”);
for(int i=0;i<celulares.length;i++){
sms.addAddress(new UserId(Type.PHONE_NUMBER,celulares[i]));
}
try {
this.smsClient.sendSms(sms);
} catch (BlueviaClientException e) {
e.printStackTrace();
}

Logo depois da classe principal executar essa ação, voltamos para a tela inicial e esperamos a próxima interação do usuário.

Deixo aqui disponível o fonte completo para download.

desenvolvimento
Desenvolvimento

RSS x Atom

RSS (Really Simple Syndication) é uma especificação para distribuição de conteúdo através de XML.Da mesma forma que o HTML que por trás da página faz com que o texto seja legível, o XML permite organizar dados de maneira estruturada. Se estes dados usarem uma estrutura padronizada, a informação pode ser lida por qualquer programa que entenda este padrão.

Você deve ter lido sobre RSS no artigo anterior, confira em “Feeds e RSS”.

Existe mais de um significado para o RSS. Com certeza, deveriam existir pelo menos mais uma meia dúzia de significados, mas considere apenas que RSS (Really Simple Syndication) é o nome da família inteira; Rich Text Summary é o nome atribuído à versão 0.9x e 2.x das especificações; e RDF Text Summary é o nome atribuído à versão 1.0.

Isto acontece devido a cisão do grupo original de desenvolvedores, cada qual partindo para o desenvolvimento de sua própria especificação. O resultado são diversas versões de RSS; todas elas estagnadas justamente no tempo em que começaram a ter sua utilidade descoberta e serem utilizadas em grande escala. O RSS, apesar de ser um padrão que tem tudo para ser confiável, provavelmente nunca o será em decorrência destas divisões, versões e estagnação. A perspectiva de atender as necessidades que surgem a todo momento para o seu uso dependeria de evolução e aceitação de novos padrões, o que se torna cada vez mais difícil. Pode-se dizer que para cada grupo que tentasse evoluí-lo, uma nova versão surgiria.

Havendo uma necessidade iminente, surge uma solução: Atom. O uso é o mesmo, a tecnologia muda.

Atom também é baseado em XML. É mais evoluído e foi criado por um grupo de desenvolvedores em cooperação. Apesar de ser muito popular na distribuição de feeds XML (conteúdo estruturado, que pode ser notícias, ou conteúdo de um blog), o RSS possivelmente cairá em desuso em pouco tempo. O Atom, por sua vez, por ser um projeto estável, é seriamente cotado para ser mais um padrão aceitos pelo W3 Consortium (http://w3.org)

O W3 Consortium é o órgão que regulamenta os padrões utilizados na Internet, desde essa página HTML, sua navegação, conexão, até o servidor de e-mail que recebe suas mensagens. Olhe o rodapé do site do W3 Consortium. RDF é um padrão aceito, mas RSS não, apesar do tempo que existe, mesmo que o utilizem para divulgação das próprias notícias.

Quem usa?

Qualquer um pode fazer uso destes padrões. É como um pequeno manual de caligrafia que te diz: escreva desta forma e todo mundo conseguirá ler o que está escrevendo. Se você coloca os novos tópicos do seu site pessoal em uma página Atom ou RSS, está fazendo a sua parte para distribuir o conteúdo entre aqueles que usam Agregadores (Programas que lêem e reunem as informações dos sites e disponibiliza no seu desktop, como um corta-caminho na sua navegação).

Entre os grandes, o Google está na frente. Atom foi o padrão adotado para oferecer aos usuários do Blogger.com meios de publicação de feeds. Além disso, o Google é a companhia mais empenhada em manter a Usenet viva, o histórico sinônimo para newsgroups, e não apenas mantém a estrutura web adquirida do DejaNews, como faz novas implementações. Já é possível receber artigos postados em newsgroups através de feeds Atom, por exemplo.

O Yahoo!, por sua vez, colocou à disposição o mesmo serviço de feeds para os usuários de seus grupos. Mas ao invés de Atom, utilizam RSS. O motivo da escolha é particular, pois se for levada em consideração a história do RSS, as chances de sobrevivência estão a favor do Atom. Isso faz os adeptos do Atom se vangloriarem, mas, além de entusiastas, existe muito conteúdo disponível em RSS para ser ignorado e por isso o RSS ganhe destaque no portal. O padrão Atom não completou 1 ano de existência. Outro recurso colocado à disposição no Yahoo! é a pesquisa avançada por termos em feeds RSS.

Disputas à parte, ainda existem aqueles que acreditam na união dos dois padrões. Enfim, as tecnologias já estão em uso e podem ser aproveitadas por qualquer um disposto a ter maior agilidade na leitura de informação.

Programas e serviços

Agregadores para Windows:

– AmphetaDesk: http://www.disobey.com/amphetadesk/
– FeedDemon: http://www.feeddemon.com/
– FeedReader: http://www.feedreader.com/
– Klipfolio: http://www.klipfarm.com/farm.php
– BottomFeeder: http://www.cincomsmalltalk.com/BottomFeeder/

Agregadores RSS para Linux:

– AmphetaDesk: http://www.disobey.com/amphetadesk/
– BottomFeeder: http://www.cincomsmalltalk.com/BottomFeeder/
– LiFeRea: http://liferea.sf.net/
– Pears: http://come.to/project5/pears

Agregadores para MAC:

– AmphetaDesk(http://www.disobey.com/amphetadesk/
– BottomFeeder: http://www.cincomsmalltalk.com/BottomFeeder/
– NetNewsWire: http://ranchero.com/netnewswire/
– NewsMac: http://www.thinkmac.co.uk/newsmac/
– Shrook2: http://www.fondantfancies.com/shrook/

Pelo menos dois navegadores trazem um agregador de feeds embutido: Mozila Firefox e Opera:

– Opera: http://www.opera.com/products/user/m2/rss/
– Mozilla: http://extensionroom.mozdev.org/more-info/rssreaderpanel

Sites Interessantes:
http://www.2RSS.com/
http://www.atomenabled.org/
http://www.apple.com/rss
http://news.yahoo.com/rss
http://www.google.com/webalerts

desenvolvimento
Desenvolvimento

Feeds e RSS

Você já parou para olhar o rodapé dos sites e blogs que visita? Faça isso com mais freqüência.

Provavelmente verá, de vez em quando, alguns ícones diferentes. Uns com as letras RSS, outros com as letras RDF, Atom, XML ou simplesmente um botãozinho vermelho, laranja ou amarelo, que leva para uma página estranha com códigos que lembram HTML. Se você já viu algum site com a misteriosa frase Syndicate this site esteve perto de saber o que significa esse monte de siglas.

São formas de distribuir conteúdo estruturado. Syndicate this site, neste contexto, significa “distribua o conteúdo deste site”. Ao conteúdo estruturado dá-se o nome de feed, que pode ser desde notícias até atualizações em blogs, e devem ser lidos por leitores especiais, ou leitores de feeds, que lembram muito um programa leitor de e-mails, com a vantagem de pesquisar centenas de fontes de informação em um único programa ao invés de navegar por centenas de sites em busca de notícias ou atualizações recentes.

Conteúdo personalizado sempre foi um objetivo a ser alcançado em qualquer mídia. Na Internet, as tentativas de trazer esse conceito para o navegador sem que o internauta tivesse que entrar em dezenas de sites ou se prender a ler o conteúdo de um único portal resultou em algumas idéias, dentre as quais o RSS.

RSS tem pelo menos três significados: Rich Site Summary, Really Simple Syndication e RDF Site Summary. RDF, Resource Description Framework , é uma especificação mais ampla, usada para organizar dados e, por isso, usada em algumas versões de RSS.

Cada significado se adaptou à forma como a tecnologia foi utilizada, desde seu surgimento, em 1999, para uso no portal da Netscape. Na época, sua utilidade era ser um meio eficiente para catalogar páginas, aplicando filtros através de metatags. Havia uma seção no portal cujo conteúdo era importado de várias fontes através de RSS. Porém, há alguns anos a Netscape divulgou sua especificação para o RSS, o que fez com que fosse cada vez mais utilizado por blogs e sites menores de conteúdo. Blogs, por sinal, são os grandes divulgadores e utilizadores dessa tecnologia nos dias atuais.

Desta vez, a distribuição de conteúdo aplica um conceito inverso. Trata-se da tecnologia push, onde a informação ia até o internauta através de recursos de algum programa, como os Canais do Internet Explorer integrados com o Desktop do Windows, o Netcaster do Netscape e outros programas como PointCast e BackWeb. Isso é velho. É quase impossível encontrar quem os utilize atualmente.


RSS é uma especificação para distribuição de conteúdo através de XML. Da mesma forma que o HTML por trás dessa página faz com que este texto seja legível, o XML permite organizar dados de maneira estruturada. Se estes dados usarem uma estrutura padronizada, a informação pode ser lida por qualquer programa que entenda este padrão. Ao padrão dá-se o nome de especificação.

Veja este código:


RSS é XML
13/06/2004
Distribuição de conteúdo


RSS pode ser RDF
13/06/2004
Explicando RSS


Trata-se de um trecho de código XML. Código que qualquer webmaster pode criar usando a especificação mais básica que existe no XML, que é a delimitação de dados por tags próprias. Se esta especificação for usada para distribuir informação para um grupo de pessoas, todos os programas utilizados pelo grupo entenderão a forma como os dados estão organizados e a partir disso exibirá a informação da forma que for mais conveniente aos leitores.

O código poderia ser repetido inúmeras vezes com dezenas de notícias de um mesmo site. Agora, imagine dezenas de blogs que ofereçam o seu conteúdo através de páginas XML utilizando a especificação RSS, ou seja, todas as páginas são padronizadas com os mesmos elementos, mudando-se apenas o conteúdo. Pronto, existindo um padrão, um programa poderia ser feito para unificar todos estes conteúdos em uma única listagem.

Dito e feito, com a utilização freqüente e crescente de RSS para distribuir conteúdo de sites, surgiram dezenas de programas capazes de agregar o conteúdo de diversas fontes. São chamados de Feed Readers, RSS Readers, Microcontent Browsers, Aggregators e tantos nomes quanto forem possíveis serem encontrados para dizer o mesmo: lêem as informações disponíveis nos sites e as coloca no seu desktop, sem que precise navegar por todos os endereços.

O trabalho dos Agregadores é reunir conteúdo de diversas fontes. O termo Syndication, apesar de estar na origem da idéia, merece ser pouco aplicado. Lembra do conceito? Syndication dizia para distribuir o conteúdo, e não apenas pegar o conteúdo e exibir de outra forma. Para uso no portal da Netscape era o termo correto.

Para o usuário final, a maior vantagem no uso de feeds é desobrigar visitas nem sempre regulares aos sites para ver se existe alguma coisa interessante para ser lida. Funciona também no caso dos blogs e ganha entusiastas porque é uma possibilidade fácil de prover conteúdo diretamente para o público do site, sem intermediários ou às custas de muitos cliques.

É um dos caminhos para a leitura rápida na Internet, pois um dos problemas de ter um conteúdo titânico sempre disponível é saber quando esse conteúdo é atualizado. Mesmo se você restringir suas visitas apenas aos sites que quer ler, não saberá quando tem algo novo disponível a menos que receba e-mails periódicos ou permita que sua caixa postal seja lotada com avisos de toda e qualquer alteração. Feeds resolvem a questão. Sabendo das alterações, você mesmo se dispõem a ler ou não o que há de novo.

A princípio, os menos avisados podem julgar que isto diminui o número de visitantes, mas ocorre o contrário. Agregadores pesquisam regularmente as páginas cadastradas e montam os tópicos mais recentes. Se algum assunto interessar ao internauta, esse deverá ler o conteúdo voltando ao site. O recurso aqui é rapidez na divulgação, não desvio de tráfego, mesmo porque quem controla o que o agregador recebe é o webmaster através de sua página com feeds XML, não o programa. Cabe ao webmaster também julgar o que mandar ao internauta, desde propaganda até spam, mas o risco de abusar da paciência de seus assinantes é ser deletado sem aviso do Agregador.


Programas e serviços

Agregadores de feeds com interface Web:

– Bloglines: http://www.bloglines.com/
– Blogstreet: http://rss.blogstreet.com/
– Fastbuzz: http://www.fastbuzz.com/
– Newsgator: http://services.newsgator.com/
– Rocketinfo: http://demo.rocketinfo.com/desktop/


O uso de feeds para divulgação de conteúdo tem tudo para revolucionar a forma como as pessoas acompanham notícias e visitam os sites. Só depende de documentação e divulgação pois, se você é um jornalista ou alguém que está sempre navegando atrás de informação, não é difícil perceber como isso economiza tempo. É capaz de se empolgar tanto que irá mandar, sem pensar muito, a sugestão para o seu jornal ou revista preferido de colocar à disposição uma página com feeds para que seu agregador possa captar as últimas notícias.

Breve, mais sobre Feeds e RSS

desenvolvimento
Desenvolvimento

Onde estão os Applets?

A primeira vez que tive contato com Java ainda usava um Netscape 3.1, Gold, recém-instalado para editar páginas html com maior facilidade, já que vinha com um editor amigável para a época. Escrever html “powered by notepad” ou com outros editores foi divertido, mas só no começo. Nesta época, algumas páginas pessoais de amigos começavam a exibir um recurso muito interessante feito em Java – uma linguagem esquisita. Era difícil imaginar como produziam aqueles “.class” – chamados genericamente de “Applets”.

Quem visitasse uma página com uma animação diferente podia estar diante de um pequeno copiador de Applets alheios, que modificava alguns parâmetros no html, ou de um programador Java, coisa rara de se achar já que a dificuldade em encontrar documentação matava a vontade de aprender de algumas pessoas. Curioso é notar que os efeitos visuais com imagens faziam os Applets cada vez mais populares e ainda hoje, mesmo que sejam difíceis de serem encontrados, é o primeiro recurso que muitas pessoas associam diretamente “aquela linguagem esquisita”.

Applets Java serviram não só para movimentar água em fotos estáticas, mas também difundiram o conceito de portabilidade da linguagem. Funcionar em vários navegadores numa época em que a briga entre Netscape e Microsoft era igual, com alguma vantagem para a Netscape e com várias versões de navegadores circulando pelo mercado, serviu de prova de fogo.

Com o tempo foquei em outras linguagens e me arrisquei a produzir um ou outro applet para fazer animações de textos e menus, mas foi só. Apesar de ter sido muito utilizado para incrementar sites, os Applets foram perdendo espaço para recursos mais dirigidos. Hoje, a Macromedia sai como grande vitoriosa, emplacando tanto o Flash quanto o Director/Shockwave, cada vez mais avançados e amigáveis e ao mesmo tempo dispõem de recursos para programadores avançados em suas linguagens script. Não é exagero dizer que o Flash tomou um grande espaço que já foi dos Applets, mas o foco do produto em Flash ainda é visual.

Este é um modo simples de resumir a diferença entre Flash e Applets. Apesar das vantagens do Flash, o Java criou uma legião de entusiastas que proporcionaram à Sun (criadora da linguagem Java) um retorno bem maior do que esperava, pois não foram só Applets que surgiram a partir da sua arquitetura, mas embriões de IDEs inteiras.

Meu interesse pelo universo Java aumentou quando estas IDEs evoluíram a ponto de serem consideradas maduras pelos programadores que sempre desenvolveram em Java, desde o tempo dos Applets. Existem muitos conceitos para reaprender e muitos não são óbvios. Não basta explorar sem destino um NetBeans, instalar um Eclipse, ler alguma coisa sobre J2EE e esperar sair programando web services. Minha atenção especial, volta-se agora para a instalação e utilização de um JBoss, o funcionamento de um Tomcat, Jakarta, Ant entre outros. Tantos nomes e conceitos envolvem esta linguagem que a única forma de aprendê-los com a solidez e rapidez necessárias para acompanhar sua evolução é empregá-los no dia-a-dia.

Applets podem parecer coisa do passado, mas é um engano. Meu Internet Banking, por exemplo, é recheado de Applets que fazem verificações e montam aqueles teclados virtuais. Applets não só continuam em uso como estão evoluindo. A diferença é que hoje estão cada vez menos visuais e mais funcionais.

tamil new aunty sex videos pornbit.info all herones xxx نسوان جميلة pornolodim.net نسوانجي مني فاروق namitha six porno-zona.com bww xxx video سكس تعبانه radarporn.com سكس هندي ساخن keerthy suresh nude youjizz.sex bangla sexy adult xvdos blueporn.mobi sex videi www karnataka sex videos katestube.mobi x.video indian.com lafbd-44 tomodachinpo.mobi くろ かわ きらら hot kathakal freshxxxtube.mobi indian bhabhi boobs rakhi ghosh pornorgy.org ww indian xxx kshx porno-arab.org سكس فى المنزل nude photos of tamanna bhatia tubeband.mobi actresssex بنات هايجه freetube18x.com نيك قوي vijaykumar tamil actor motherless.pro momandsanxxx anjelina hot xxxvideohd.net porn in first time