sexta-feira, 1 de março de 2013

Os desafios para o desenvolvimento de apps mobile na era pós-PC


Semana passada, eu tive um almoço muito interessante com um empreendedor que está criando uma empresa voltada para o desenvolvimento de aplicativos móveis. A conversa, então, girou sobre o potencial desse mercado e as oportunidades de negócio que ele teria pela frente.
Os smartphones e os tablets já fazem parte do nosso dia-a-dia e estão, rapidamente, se integrando a todas as atividades humanas. Esses aparelhos estão cada vez mais sofisticados e embutem diversos dispositivos que permitem conexão de banda larga, sensores e funcionalidade de geolocalização, entre outras funções, que nos abrem inúmeras oportunidades de exploração.
Por exemplo, durante a conversa, identificamos o potencial de seu uso na área de saúde. Já existem aplicativos que medem a frequência cardíaca, testam acuidade visual e daltonismo, ajudam no controle da gestação e do controle glicêmico. Um aparelho de pressão acoplado a um smartphone implementa um canal direto de comunicação e informação com o médico. Podemos pensar também em um glicosímetro acoplado a um smartphone, permitindo que o próprio paciente controle a dieta e as doses de insulina e essas informações seriam repassadas ao médico. Com esses aparelhos acoplados a smartphones e a tablets, implementamos a automonitoração e a comunicação direta entre médico e paciente, criando um mecanismo de telemedicina, de forma barata e simples.
Além dessas aplicações específicas, está se abrindo um espaço imenso para o uso de tablets e smartphones em qualquer setor de negócios. Hoje já somos tão dependentes dos nossos smartphones e tablets que nenhuma empresa pode impedir ou restringir seu uso corporativo. Um smartphone de hoje tem tanto poder computacional quanto um supercomputador dos anos 80, como o então famoso Cray (na época). Portanto, nenhuma empresa pode ignorar a potencialidade que cada usuário tem em suas mãos ou em seu bolso. Pelo contrário, deve incentivá-lo mais ainda, mesmo que isso demande novos desafios para a área de TI.
Uma maneira de vermos as mudanças que já estão em curso é olharmos para trás e compararmos o atual momento com o surgimento dos PCs. Na chamada era PC, a web usada de forma pessoal, para buscas e acesso a sites, com foco em entretenimento e utilizada em casa. Nas empresas, o acesso às informações e sistemas ficava restrito aos PCs oficiais instalados dentro de seus escritórios. Os funcionários só tinham acesso aos sistemas desenvolvidos e mantidos pela área de TI. Com a disseminação da Web 2.0 e as mídias sociais, os funcionários passaram a acessar a web também de seus PCs e laptops oficiais. Agora, a web já fazia parte das atividades profissionais. No atual mundo dos tablets e smartphones, vemos que os funcionários estão conectados a qualquer hora e lugar, acessando não apenas sistemas internos, mas também a web e de forma inovadora vemos aplicações integrando esses sistemas internos com apps externas disponíveis em apps markets. Um exemplo é acoplar o FourSquare e outras mídias sociais a aplicativos corporativos disponíveis ao pessoal de vendas, para eles encontrarem e reforçarem seus laços de relacionamento com seus potenciais clientes.
Outra mudança significativa é que antes a TI era única que homologava, comprava e emprestava os PCs e os laptops aos funcionários. Nos tempos do BlackBerry também… Mas hoje os próprios funcionários trazem de casa seus tablets e smartphones e querem usá-lo na empresa. Saímos de um ambiente homogêneo e controlado para um ambiente heterogêneo, com cada usuário dispondo não só de smartphones diferentes, nem acessando apenas os aplicativos da empresa, mas os aplicativos que ele, usuário, seleciona nos mercados de apps.
Querem ter uma idéia das diferenças de uso entre laptops e smartphones? Vejam a tabela abaixo:
          
Laptps Smartphones
Pouca personalização; praticamente todos têm as mesmas aplicações e homologadas pelas empresas. Alta personalização; a lista de apps de um smartphone não é a mesma de outro.
Transportável; meio incômodo de usar em pé, na fila do banco por exemplo. Móvel; podemos usar até dirigindo, embora não seja recomendado! Sempre acessível.
Poucos sensores; basicamente câmeras de vídeo e microfones. Inúmeros dispositivos e sensores, como GPS, barômetros, câmeras fotográficas etc.
O desafio para a área de TI é que esses aparelhos estão entrando nas empresas por todos os lados. Impedir seu uso é impossível, mas é necessário criar procedimentos que garantam a segurança e a privacidade dos dados considerados críticos para o negócio. Sim, é um belo desafio. Os modelos tradicionais de controle e homologação não são mais adequados ao mundo dos smartphones. Não é simples separar o lado profissional do pessoal. O FourSquare que citei no exemplo acima, por exemplo, é de uso pessoal? Mas se acoplado ao sistema de CRM da empresa não passa a ser corporativo? A área de TI tem que começar colocar em prática novos métodos de gestão, adotando tecnologias especificas de MDM (Mobile Device Management), que permitam obter um nível de gerenciamento adequado aos seus requerimentos de governança – muitos deles forçados pelo compliance a regulações a que estão sujeitas. Recomendo a leitura de um artigo muito interessante, publicado em 2010, pela InfoWorld, que mostra uma tabela comparativa dos recursos de segurança dos sistemas operacionais dos smartphones. Não está 100% atualizado, mas serve de referência para um estudo mais aprofundado.
Outra alternativa a ser considerada é o uso de virtualização nos próprios smartphones, criando ambientes separados (pessoal e profissional) no mesmo dispositivo. Existem algumas alternativas despontando no mercado, como a MVP (Mobile Virtualization Platform), da VMWare e o conceito de hypervisor, adotado pela Open Kernel Labs.
O mundo dos smartphones e tablets abre oportunidades de interação que não existiam nos laptops e nos PCs. Nestes, a interação era basicamente o consumo e a criação de conteúdo, que requer apenas uma interface simples, como tela, mouse e teclado. Com recursos como GPS, câmeras fotográficas/vídeo e novas interfaces, como voz, gestos e outros, o engajamento e a interação dos usuários com os aplicativos tornam-se muito mais abrangente. Um exemplo simples: você interage de forma totalmente diferente com um game através do Kinect ou Wii, do que quando usa apenas os teclados e o mouse. Neles você imerge no próprio jogo. Com as novas interfaces dos smartphones será a mesma coisa: o nível de engajamento será diferente do simples ouvir, falar e teclar.
Temos aí outro desafio para a área de TI. Os seus aplicativos deverão ter sua camada de interface redesenhadas para explorar as características dos smartphones e tablets. Hoje eles foram desenhados para explorar o paradigma da interface via teclado e mouse. Provavelmente veremos HTML5 começando a dar sinais de vida nos aplicativos corporativos! Veremos, também, a área de TI escrevendo novos aplicativos, voltados para explorar as funcionalidades intrínsecas dos smartphones, como localização geográfica, acelerômetros, compassos, sensores de proximidade, câmeras fotográficas etc. Esses aplicativos deverão explorar o fato de os usuários estarem com seus smartphones em locais e situações que não estariam com seus PCs e laptops e ao mesmo tempo eles querem que sua experiência de uso seja similar a que já estão acostumados a ter nesses dispositivos.
Os CIOs não podem esperar o mundo dos smartphones chegar. Ele já chegou! No mundo do PCs, eles tinham o controle da situação. Hoje, os usuários podem acessar dados e apps de nuvens sem passar pela área de TI. Podem baixar aplicativos e os usarem em lugar de aplicativos oficiais. E manter os dados em nuvens como o DropBox. O que os CIOs devem fazer? Não lutar contra.
Mas engajar-se ativamente e fazer com que a área de TI seja a influenciadora deste mundo wireless. O usuário tem em suas mãos um supercomputador dos anos 80 e impedir seu uso seria um contrasenso. Mas apoiar e influenciar melhores práticas para seu uso é uma estratégia vencedora.
A conversa gerou algumas conclusões interessantes, que compartilho aqui:
  1. A TI não poderá desenvolver tudo sozinha. Deixe os usuários desenvolverem e escolherem seus aplicativos, mas exerça influencia sobre o processo. Crie iniciativas de “P&D” interno, apoiando os usuários a criarem suas próprias soluções e interfaceando essas soluções via APIs seguras (estas desenvolvidas por TI) aos sistemas corporativos;
  2. Adote práticas, métodos e tecnologias que permitam implementar a política de BYOD (Bring Your Own Device) na empresa. Um sugestão é começar ao poucos, liberando a política primeiro a alguns setores e depois aos demais. É um aprendizado que só vai se dar na prática. Não existe nenhum manual que oriente como fazer isso com sucesso;
  3. Não seja pessimista e nem otimista ao extremo. Provavelmente durante muito tempo existirão PCs, laptops, smartphones e tablets. Alguns funcionários deixarão de usar laptops e PCs, mas outros continuarão a usá-los. Uma estratégia de adoção e disseminação da mobilidade e estudos de payback ajudarão na tomada de decisão. Não esqueça que um uso descontrolado de redes 3G poderá aumentar em muito os custos operacionais;
  4. Mude o modelo de gestão e governança de TI. Os modelos atuais foram criados para o mundo PC. Modelos como o BYOD e a heterogeneidade de dispositivos vai demandar novas práticas e processos. Uma sugestão seria adotar um processo evolutivo, ajustando e aperfeiçoando as práticas à medida que mais experiências forem sendo adquiridas, tanto pelos usuários, como pela própria área de TI.
  5. Não ignore a necessidade de novos skills e tecnologias. Os seus desenvolvedores têm fluência em HTML5, Android e iOS? Existem tecnologias de MDM na organização? A sua equipe de segurança está devidamente preparada para este novo mundo?
No final ficou a questão: Os CIOs têm a grande oportunidade de catalizar, liderar e influenciar este mundo dos smartphones e tablets. Mas o trem já está deixando a estação. Não podem apenas ficar olhando… Nesse caso, outros liderarão o processo.

Formulário no WordPress sem plugin

Em determinadas situações é bom evitar o uso de plugins, no caso do formulário de contatoo não uso de plugin evita que ele fique carregando o script do formulário em todas as página, da forma mostrada abaixo o script só carrega na própria página de contato. E para isso acontecer vamos criar um template especifico para página de contato.
Todos templates do wordpress tem o arquivo “page.php”, ele é o arquivo responsável em exibir todas páginas separadas, sabendo disto vamos fazer o seguinte: Entre na pasta do template, faça uma copia do “page.php” e renomei-a para “contato.php” e abra a mesma em seu editor.
No topo dela vai ter o seguinte comentário.
1./**
2.* The template for displaying all pages.
3.* ...
4.*/

Mude para:
1./**
2.* The template name: Contato
3.* ...
4.*/

Este “The template name: Contato” é a linha que vai fazer toda a diferença, com isso este template vai aparecer na lista de “modelos” de página para selecionar.
Agora a única coisa que temos que fazer é um formulário de contato normal.
01.?php
02.function h($str) {
03.return htmlentities($str);
04.}
05.
06.function noempty($str) {
07.if (preg_match('/[a-z]/'$str))
08.return true;
09.else
10.return false;
11.}
12.
13.if (isset($_POST['enviar'])) {
14.if (!noempty($_POST['nome']) or !noempty($_POST['assunto']) or !is_email($_POST['email'])or !noempty($_POST['msg'])) {
15.$_SESSION['info'] = 'Preencha todos campos corretamente.';
16.}
17.
18.else {
19.$headers 'From: ' $_POST['email'] . "\r\n" .
20.'Reply-To: ' $_POST['email']  . "\r\n" .
21.'X-Mailer: PHP/' . phpversion();
22.
23.if(@mail(get_bloginfo('admin_email'), $_POST['assunto'], $_POST['msg'], $headers)) {
24.$_SESSION['info'] = 'E-mail enviado com sucesso.';
25.header('Location: http://' $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
26.exit;
27.else {
28.$_SESSION['info'] = 'Erro no servidor.';
29.}
30.}
31.}
32.?>
Agora o formulário, de preferencia abaixo da função “the_content()”.
01.<form method="post" action="" class="contato">
02.< ?php
03.if (isset($_SESSION['info'])) {
04.echo '<div>' $_SESSION['info'] . '';
05.unset($_SESSION['info']);
06.}
07.?>
08.<div>
09.<label for="nome">* Nome</label><br />
10.<input type="text" name="nome" value="<?php echo h(@$_POST['nome']) ?/>" id="nome"/>
11.</div>
12.<div>
13.<label for="email">* E-mail</label><br />
14.<input type="text" name="email" value="<?php echo h(@$_POST['email']) ?/>"id="email" />
15.</div>
16.<div>
17.<label for="assunto">* Assunto</label><br />
18.<input type="text" name="assunto" value="<?php echo h(@$_POST['assunto']) ?/>"id="assunto" />
19.</div>
20.<div>
21.<label for="msg">* Mensagem</label><br />
22.<textarea name="msg">< ?php echo h(@$_POST['msg']) ?></textarea>
23.</div>
24.<div>
25.<input type="submit" name="enviar" value="Enviar" />
26.</div>
27.</form>
E está pronto, é só editar ou criar a página de contato e na hora de salvar selecionar o modelo “contato” nas opções “Atributos de Página”. Este é só um exemplo você pode faze o formulário como desejar

Desenvolvimento de PHP em nuvem

Na Conferência Zend PHP, realizada em Santa Clara, na Califórnia, a Zend anunciou uma plataforma de desenvolvimento livre de PHP em nuvem.
Chamada de phpcloud.com, a plataforma consiste em dois componentes integrados:o Zend Developer Cloud, um sandbox de desenvolvimento e um conjunto de ferramentas para criar aplicações Web PHP, e o Zend Application Fabric, uma plataforma de aplicativos com base na Amazon Web Services e tecnologias próprias da Zend.
O Zend Application Fabric é baseado em tecnologias Zend Server, e tem como objetivo oferecer desempenho elevado com tempos de resposta rápidos de aplicativos, e minimizar o uso dos recursos. O sistema suporta um escalonamento on-demand para lidar com processo “on flotation” (demanda flutuante).
Depois de concluídos, os apps web desenvolvidos em phpcloud.com podem ser exportados para outras plataformasem cloud, para a implantação. As plataformas suportadas incluem Amazon, IBM SmartCloud, Rackspace e Red Hat. Os aplicativos também podem ser implantados em nuvens privadas usando o ZendServer.

Criando aplicativos móveis com PHP

Há um bom tempo, o PHP era a escolha óbvia para as necessidades de todo programador. Ele estava disponível em todos os servidores web virtuais, tinha excelente documentação, e conseguia lidar com todas as necessidades dos programadores. Essas coisas são ainda mais verdadeiras hoje, e o PHP ainda é o middleware de escolha da maioria dos profissionais da área. No entanto, o uso do PHP mudou nos último anos.
Durante uma solicitação típica de página, o PHP fazia coisas como começar uma sessão, consultar um banco de dados, processar alguns dados, e, finalmente, gerar uma tonelada de métricas de HTML que seriam retornadas para o browser do usuário. Em outras palavras, toda a interface do usuário era gerada no lado do servidor pelo PHP. Ocasionalmente, era possivel incluir o prototype.js ou jQuery para fazer um pouco de validação de formulário, ou uma lista dropdown com um campo para “auto-completar”.

Mas então veio o iPhone…

Em 2007, o iPhone deu início a uma onda de interesse em computação móvel. Como milhares de desenvolvedores maravilhado por aquele pequeno dispositivo mágico que colocou a web no bolso de muita gente. Sempre conectado, navegadores excelentes, interação de toque intuitiva – é de fato incrível, e todos queriam entrar nessa de cabeça.
Quando o iPhone foi anunciado pela primeira vez, Steve Jobs pediu ao desenvolvedores terceirizados que construíssem aplicativos web se eles quisessem programar para o iPhone.
Claro que Jobs acabou voltando atrás menos de um mês depois, com o anúncio do Cocoa Touch e a iTunes App Store. E a guerra santa entre “web apps” e “apps nativos” nasceu.

E o que isso tem a ver com PHP?

Felizmente, agora temos a convergência de novas tecnologias que tornam a construção de web apps – móveis e outros – muito mais fácil.jQTouchSencha Touch, e mais recentemente, jQuery Mobile tornaram a vida mais fácil para escrever JavaScript para browsers móveis. O CSS3 nós dá transformações, transições e animações que nos permitem facilmente adicionar efeitos visuais sofisticados. E, mais drasticamente, o HTML5 define uma enorme quantidade de novos recursos  —  geolocalização, canvas, sockets, workers, armazenamento de dados do lado do cliente, suporte a cache offline da aplicação, cross-origin resource sharing, e por aí em diante.
Como resultado,muitas pessoas podem criar suas próprias UI com HTML estático, CSS e documentos JavaScript que conversam com uma API do lado do servidor construída com PHP. Esta abordagem baseada em API pode minimizar, de fato, a quantidade de dados enviados através do fio, porque é possível esconder os arquivos estáticos localmente, e somente requisitar atualizações de dados relativamente pequenos do PHP (normalmente na forma de JSON). Isso também tem grandes vantagens secundárias. Aqui estão as três maiores:

1. Divisão de trabalho:
Uma vez que você tem configurado uma API do lado do servidor, você pode facilmente ter seu trabalho de design do aplicativo no front end sem saber o mínimo de PHP, linguagens de templates, ou qualquer outra tecnologia do lado do servidor. Você não tem nem que dar acesso ao servidor para o designer – ele pode codificar contra a API com os arquivos no seu desktop.

2. Clientes múltiplos
O cenário da informática está sob massivo crescimento e transformação. Estamos vendo telas tão pequenas quanto cartões de credito, e tão grandes quanto um outdoor. E está acontecendo também uma grande separação entre dispositivos que suportam entrada de toque, de mouse e, em menor número, de voz.
Diferenças no tamanho físico, modos de interação e capacidades do dispositivo exigem que forneçamos experiências otimizadas ao usuário para o terminal em questão. Expor uma API do lado do servidor, construída em PHP, possibilita o suporte a clientes front end, sejam eles clientes menores, construídos em HTML, CSS, e JavaScript, ou maiores, construídos com frameworks nativos.
Os benefícios dessa abordagem têm sido demonstrados pelo Google, Yahoo, e, talvez, mais dramaticamente pelo Twitter, que documentou e lançou uma API simples para a comunidade de desenvolvedores. Graças a isso, todos os clientes do Twitter encontraram seu caminho no mundo digital. Começando com uma API que permite esse tipo de flexibilidade, que parece infinita, certamente ela contribuiu imensamente para a aceitação do Twitter.

3.  À prova do futuro
O cenário da informática está evoluindo e é muito difícil prever o que vem a seguir. Muitas pessoas inteligentes estão trabalhando em novas tecnologias que irão mudar a maneira com que interagimos com computadores, e mais importante, um com o outro. Tudo, desde projeções holográficas de eventos de esporte ao vivo , até entradas das ondas cerebrais dos usuários  estão em jogo. A melhor maneira de se manter flexível à vista de novos desenvolvimento é fornecer uma API robusta para lidar com o máximo do levantamento do back end possível.

Comece com sua API

Para trabalho web front end, você vai querer se familiarizar com a nova maravilha que é o  HTML5 e o CSS3, e mais importante, aprender JavaScript! É uma sintaxe muito parecida com PHP e ela deveria parecer bem familiar para você (existe até um artigo do PHP Advent sobre isso). No entanto, existem muitas diferenças importantes entre PHP e JavaScript que você realmente precisa entender antes de se auto intitular um especialista. O livro JavaScript: The Good Parts, de Douglas Crockford é recomendado. Se você programa para a web, deve lê-lo.
Para finalizar,  nunca houve um momento melhor para ser um desenvolvedor web. A convergência de uma conectividade ubíqua, serviços de cloud e telas de toque interativa estão criando um ambiente onde qualquer um pode construir experiências do usuário convincentes que tenham um alcance massivo com uma barreira de entrada muito pequena. Então volte para seu editor de texto e comece a codificar

Criando um CAPTCHA

Como todos devem saber, segurança é algo essencial no mundo digital. Existem pessoas que invadem sistemas para mostrar vulnerabilidades deste e alertar seu criador para aumentar a segurança, mas também existem aquelas pessoas que invadem com más intenções. Uma das formas mais utilizadas para descobrir senhas de sistemas é o método tentativa e erro. Só que ser humano nenhum tem paciência e nem tempo para testar mais de um milhão de combinações atrás de uma correta, logo, criam robôs para executarem tais tentativas. Devido a isso, foi elaborado um tipo de sistema chamado CAPTCHA (Completely Automated Public Turing Test To Tell Computers and Humans Apart ou, Teste Público Totalmente Automatizado Para Diferenciar Computadores de Seres Humanos).
Neste tutorial, você irá aprender como usar uma imagem CAPTCHA para um sistema de login mais seguro. O primeiro passo para desenvolver qualquer sistema realmente bom, é entender como ele realmente funciona, ou deveria funcionar. Assim, analisemos o CAPTCHA.
O CAPTCHA é exibido ao usuário em forma de uma imagem com extensão PNG ao lado com um campo de digitação dos caracteres nela exibido. Sendo assim, aprenderemos a criar imagens PNG com PHP.
Para trabalharmos com imagens PNG no Php devemos escolher uma imagem como base para a editarmos. Para tal utilizaremos a função:
$imagemCaptcha = imagecreatefrompng(<caminho_imgem_base>);
A imagem utilizada com plano de fundo de um CAPTCHA deve ser bem abstrata ou conter muitos elementos, uma vez que é possível criar scripts que lêem pixel por pixel de imagens a procura de padrões de seqüência que formam letras. Um bom exemplo de imagem seria:
Além de uma imagem de fundo é necessário escrever algo nela, e para isso devemos definir todos os padrões de fonte da escrita, como cor e tipo de fonte (lembre-se de que o arquivo que contém a fonte deve estar na mesma pasta que o arquivo gerador do CAPTCHA)
$fonteCaptcha = imageloadfont("anonymous.gdf");
// Nos três ultimos parâmetos da função imageclorallocate são passados os valores para RGB respectivamente.
$corCaptcha = imagecolorallocate($imagemCaptcha,0,0,0);
Agora precisamos definir qual texto será usado na string exibida na imagem e armazená-la em uma sessão:
$textoCaptcha = substr(md5(uniqid('')),-9,9);
        $_SESSION["string_seguranca"] = $textoCaptcha;
Agora precisamos agrupar a imagem de fundo ao texto gerado, exibi-la e limpar a memória para evitar problemas futuros da seguinte forma:
  //O 3º e o 4º parametros passados são a posição do texto na imagem
 imagestring($imagemCaptcha,$fonteCaptcha,15,5,$textoCaptcha,$corCaptcha);
 //Exibe a imagem
 imagepng($imagemCaptcha);

 //Limpa a memória
 imagedestroy($imagemCaptcha);
O arquivo inicial deverá ficar da seguinte forma:
<?php
 session_start();

 //Carrega imagem para utilização na criação do captcha
 $imagemCaptcha = imagecreatefrompng("background/bg7.png");

 //Tipo de fonte a ser usada na imagem //Dê preferencia a fontes GD
 $fonteCaptcha = imageloadfont("anonymous.gdf");

 //Gera String unica para captcha
 $textoCaptcha = substr(md5(uniqid('')),-9,9);

 $_SESSION["string_seguranca"] = $textoCaptcha;

 //Define a cor da fonte da imagem
 $corCaptcha = imagecolorallocate($imagemCaptcha,0,0,0);

 //Monta imagem com o novo texto
 imagestring($imagemCaptcha,$fonteCaptcha,15,5,$textoCaptcha,$corCaptcha);

 //Mosta a imagem em formato PNG
 imagepng($imagemCaptcha);

 //Libera a memória
 imagedestroy($imagemCaptcha);
?>
Para usarmos a imagem a chamaremos da seguinte forma em um arquivo HTML.
<img src="captcha.php" />
E ao checar o usuário e senha digitados comparamos o texto digitado pelo usuário com o da sessão.
Para utilizar a função de troca de imagem caso fique ilegível utilize um pouco de JQuery.
Mudaremos um pouco a forma de chamar a imagem. Criaremos um arquivo php com o nome imagem_seguranca.php com o seguinte conteúdo:
<?php
 //Isto servirá para a troca de imagens de fundo do CAPTCHA
 $imagem = rand(0,4)
?>
<img src="captcha.php?iu=<?php echo $imagem; ?>" />
E no arquivo HTML login chamaremos o arquivo imagem_seguranca.php da seguinte forma:
<span id="img_captcha">
 <?php require_once "imagem_seguranca.php"; ?>
</span>
Para trocar as imagens utilizaremos um link com um id “troca_imagem” que servirá para identificá-lo no JQuery.
Não consegue visualizar a imagem? <a href=”#imagem” id=”troca_imagem”>Clique aqui</a>
O seguinte código JQuery servirá para recarregar uma área especifica do site toda vez que o link com id troca_imagem for clicado, assim chamar novamente a cada clique no link a página imagem_segurança.php (Não se esqueça de importar a biblioteca jQuery).
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
 $(function(){
 $('#troca_imagem').click(function(){
 $('#img_captcha').load('imagem_seguranca.php');
 });
 });
</script>
Por fim modificaremos o arquivo captcha.php para que o sistema de troca de imagens de fundo funcione, tendo no final três arquivos para a geração do captcha.
//Array Imagens de Fundo
$imagensCaptcha[0] = "background/bg3.png";
$imagensCaptcha[1] = "background/bg4.png";
$imagensCaptcha[2] = "background/bg5.png";
$imagensCaptcha[3] = "background/bg6.png";
$imagensCaptcha[4] = "background/bg7.png"; 
//Carrega imagem para utilização na criação do captcha
$imagemCaptcha = imagecreatefrompng($imagensCaptcha[$_GET["iu"]]);

Professor da Unibratec tem artigo publicado na Revista Java Magazine

Nelson Glauber, professor do Curso Superior de Tecnologia em Análise e Desenvolvimento de Software, teve mais um texto publicado na DevMedia. O artigo, escrito em parceria com Felipe Vasconcelos, fala sobre a Cloud To Device Messaging API (C2DM), que na última Google IO mudou para GCM (Google Cloud Messaging). A C2DM permite que um dispositivo Android receba mensagens de uma aplicação servidor, e então, tomar uma ação como obter uma informação na web.
Nelson também é um dos convidados do FEEC Brasil, convenção que reúne profissionais de Front End que acontecerá em Dezembro. No evento, ele irá palestrar sobre desenvolvimento de interfaces para aplicações Android

Aluna Unibratec cria aplicativo para iOS, Android e BlackBerry

Isany Garcia, aluna do 5º período do Curso Superior de Tecnologia em Design Gráfico da Unibratec, desenvolveu um projeto com outros três alunos do centro de informática da UFPE. O aplicativo Social Atmosfere (SoAt) mistura promoção, feedback e atendimento para criar uma interação entre restaurantes e clientes. Como um site de compra coletiva personalizado, o app dá promoções relâmpagos de acordo com a distância que o usuário se encontra ou com o que ele fala nas redes sociais. A estréia do Social Atmosfere está prevista para o mês que vem.