Tiago Marciano curtiu este postA visualização de dados é um tema que gosto muito, na verdade, sou apaixonado por ele. Posso dizer que você leitor encontrará facilmente um material vasto na ? internet sobre o assunto, mas, aqui quero trazer a minha visão sobre o tema e claro, o material que selecionei ao longo do tempo….
Visualização de Dados – Uma abordagem sobre UI
Veja mais neste post.
Ele mostra ainda em outro post que o Tour de Flex agora está disponível para iPad.
Veja o suporte dos browsers às novidades de html5, css3 e javascript
Hoje eu reencontrei um site muito útil que eu já havia visto algum tempo atrás mas havia perdido o link. O site se chama “When can I use…” e contém diversas tabelas comparativas mostrando o suporte dos principais browsers ? s novidades de CSS, HTML5, SVG, Javascript e outros.

Clicando nos links das funcionalidades é possível ver as tabelas comparativas de suporte dos browsers e também é possível mudar os filtros para exibir outras funcionalidades.
As tabelas de comparação contam também com alguns browsers de smartphone, mas o Windows Phone não consta na lista (tem apenas iOS, Android, Opera Mini e Opera Mobile). Mas isso não é um problema pois o IE do Windows Phone usa a mesma engine de renderização do desktop, com a única diferença de que não suporta plug-ins, então basta olhar a versão do IE normal na lista para ver se suporta a funcionalidade desejada. O IE do Windows Phone 7.0 (versão lançada na Europa e EUA em 2010) usa a engine do IE 7 e o Windows Phone 7.1 (Mango, lançado em 2011, inclusive no Brasil) usa a engine do IE 9.

Se você estiver trabalhando em um projeto usando HTML5, este site com certeza será muito útil para ajudar a identificar os pontos críticos do projeto do ponto de vista de suporte e portabilidade entre plataformas.
Mac OS X do Snow para o Lion… lentidão
Um post r?pido para compartilhar algo que pode ser ?til a mais algu?m…
Recentemente fiz o upgrade do meu Macbook Pro do Mac OS X Snow Leopard para o Lion, depois de todas as atualiza??es de software, no uso do dia a dia notei que o Lion estava absurdamente lento, Google Chrome, Mozilla Firefox, o Eclipse (esse estava de chorar e desanimador de t?o lento que estava)
Lendo os blogs, achei 2 dicas que resolveram o problema:
1 – Verificar e reparar as permiss?es de acesso ao HD
Caminho: Finder > Applications > Utilities > Disk Utility
Selecionar o drive que representa o Mac, depois clicar no bot?o: Verify Disk Permissions, esperar finalizar e depois no bot?o: Repair DIsk Permissions
Link do post com as dicas: Speed up Mac OS X Lion
Desde post tamb?m revisei as configura??es do Spotlight.
2 – Limpar os caches
Abrir o Finder > Menu: Go > Go Folder | ou executar o atalho: Shift + Command + G
Digite: ~/Library/Caches
Apague o conte?do deste diret?rio
Caso n?o tenha total seguran?a se deve apagar todos os arquivos e diret?rios, fa?a um backup, copiando o conte?do da pasta para outro diret?rio. Obs.: esse passo n?o ? necess?rio, mas caso queria alguma garantia de o que fazer se algo der errado ter? as c?pias.
Aten??o: alguns diret?rios e arquivos n?o ser?o exclu?dos pois est?o em execu??o, por exemplo, cache referente ao Finder e a alguns outros aplicativos do Mac OS X.
Reinicie seu Mac.
Link do post com a dica: OSX Lion – Clear your caches!
Feito estes procedimentos, os aplicativos e o Mac OS X Lion passou a ter uma performance e resposta aceit?vel, assim como tinha no Mac OS X Snow Leopard.
Veja também:
SharedObject com Flash Media Server
SharedObject é um recurso que dar ao Flash Player a capacidade de salvar dados localmente para poder ser usado posteriormente em sua aplicação, a grosso modo é como um cookie. Com o Flash Media Server, foi introduzido a possibilidade de usar o SharedObject Remote, no qual os dados são salvos no servidor Flash Media Server e compartilhados para todas as instâncias de uma conexão entre o Flash Player e o Flash Media Server. Isso possibilita a criação de aplicativos em real time como Dashboards, chats e o que mais a imaginação permitir.
O uso do SharedObject Remote pode ser usado de duas maneiras em conjunto com o Adobe Flash Media Server.
- Somente pelo lado cliente, através do Flash Player/AIR
- Em conjunto com ActionScript Communication, linguagem de servidor do Flash Media Server
Vejamos o primeiro caso:
Através do lado cliente, através do Flash Player/AIR
Caso você não tenha conhecimento para usar a linguagem Server-side do Flash Media Server, é possível utilizar o SharedObject Remote somente pelo ActionScript 3.0. Vamos a um exemplo clássico sharedBall, onde o objetivo é compartilhar as posições da bolinha a atualizar nos outros clientes conectados a mesma instância.
- Vá até o diretório de instalação do Flash Media Server e procure pela pasta “applications”, lá crie um diretório chamado “sharedBall”, dentro dele um arquivo chamado “main.asc”
- Abra o main.asc no seu editor de textos de preferencia ou pelo próprio Flash e digite: trace(“sharedBall…”);
- Vamos testar esse arquivo, abra o console do Flash Media Server, geralmente fica localizado no diretorio de instalação/webrrot/swfs. Você pode abrir pelo browser ou o swf diretamente.
- Clique no botão “View Applications” e em seguida procure o nome “sharedBall” no combobox logo no canto inferior esquerdo onde está escrito “New Instance…”
- Selecione “sharedBall” e deveremos ter na aba Live Log algo como na imagem abaixo:
- No Flash, criei uma bola com as ferramentas de desenho e converti para MovieClip dando o nome de “mc_ball”.
- Estamos prontos para começar a integração entre o Flash e o Flash Media Server. Crie um layer para o ActionScript e abra o editor apertando F9 ou “Window->Actions”
- Nosso código começa com a conexão com o servidor Flash Media Server
-
-
-
function init():void
-
-
nc.connect(“rtmp://localhost/sharedBall”);
-
-
-
-
trace(evt.info.code);
-
-
-
init();
Feito isso, podemos testar o swf apertando Ctrl+Enter, se tudo correr bem, deveremos ter a seguinte mensagem no output do Flash:
NetConnection.Connect.Success
Com a conexão feita, podemos instanciar o nosso SharedObject Remote para compartilhar as posições de x e y da bolinha.
-
if(evt.info.code == “NetConnection.Connect.Success”)
-
-
so.connect(nc);
-
O handlerSync é responsável por atualizar os dados de x e y pegaremos do SharedObject Remote:
-
-
mc_ball.x = so.data.x;
-
mc_ball.y = so.data.y;
-
Daremos a opção de ao clicar na bolinha, que ela possa ser arrastável, em seguida atualizaremos as posições de x e y no SharedObject Remote:
-
-
-
mc_ball.startDrag();
-
-
-
-
mc_ball.stopDrag();
-
-
-
-
so.setProperty(“x”,mc_ball.x);
-
so.setProperty(“y”,mc_ball.y);
-
Segue o código completo:
-
-
-
function init():void
-
-
nc.connect(“rtmp://localhost/sharedBall”);
-
-
-
{
-
trace(evt.info.code);
-
if(evt.info.code == “NetConnection.Connect.Success”)
-
-
so.connect(nc);
-
-
}
-
-
-
mc_ball.x = so.data.x;
-
mc_ball.y = so.data.y;
-
-
-
-
-
mc_ball.startDrag();
-
-
-
-
mc_ball.stopDrag();
-
-
-
-
so.setProperty(“x”,mc_ball.x);
-
so.setProperty(“y”,mc_ball.y);
-
-
-
init();
Veja uma demostração em funcionamento:
Exibir/Ocultar caracteres ocultos no Visual Studio 2010
O Visual Studio 2010 tem diversos recursos que estão muito bem escondidos nos seus vários menus e telas de configuração, mas são acessíveis por teclas de atalho. Isso é vantajoso em diversas situações pois pode agilizar a utilização desses recursos mas também pode se tornar uma irritação ou mesmo um problema se você por acaso acionar uma dessas teclas de atalho por acidente e não souber como voltar atrás. Foi o que aconteceu com um colega no trabalho recentemente.
Por acidente esse colega acionou uma tecla de atalho do Visual Studio 2010 que ativa a exibição de caracteres ocultos (white space). Em outras palavras, o Visual studio passou a exibir todos os espaços e marcação de final de arquivo na tela. O resultado foi algo semelhante ? imagem abaixo:

Não parece ser algo muito irritante neste exemplo pois há pouco código, mas em arquivos com centenas de linhas de código e em arquivo com html esse modo de visualização é bastante irritante e chega a atrapalhar a produtividade pois polue visualmente a tela. Esse colega passou quase 2 meses trabalhando com essa configuração pois não conseguia encontrar um meio de desfazer e voltar ao modo normal de visualização. Ele chegou inclusive a reinstalar o Visual Studio mas não adiantou pois o instalador não removeu as configurações problematicas.
Hoje eu dei uma pesquisada um pouco mais a fundo e acabei encontrando a solução. A opção do menu para essa configuração se encontra em Edit > Advanced > View White Space e pode ser acionada pela tecla de atalho Ctrl+E, S (que foi o que aconteceu com meu colega).
Flex com PHP usando ZendAMF – Zend_Db
O artigo Adobe Flex com PHP usando ZendAMF – primeiros passos teve como objetivo exemplificar a integração do Flex com PHP para quem já tinha sistemas desenvolvidos usando o AMFPHP, por isso não usei as classes para acesso a banco de dados do ZendFramework. Neste artigo mostrarei o mesmo exemplo mas usando exclusivamente ZendFramework.
Pegarei o mesmo exemplo utilizado no artigo anterior, só modificando a classe PHP para usar as classes de abstração de banco de dados do ZendFramework. Começaremos com nosso gateway.php
-
-
require_once ‘Zend/Config.php’;
-
require_once ‘Zend/Db.php’;
-
require_once ‘Zend/Amf/Server.php’;
-
require_once ‘Zend/Amf/Exception.php’;
-
require_once ‘Zend/Amf/Server.php’;
-
$server = new Zend_Amf_Server();
-
$server->setProduction(false);
-
$server->setClass(‘Contato’);
-
echo($server->handle());
-
?>
Executando o link no seu navegador, deve aparecer a seguinte mensagem:
Zend Amf Endpoint
Em seguida, modificaremos em nossa classe principal, que efetuará as operações de listar, inserir, apagar e atualizar os dados do nosso banco:
-
-
/*
-
* author Leonardo França
-
* site http://www.leonardofranca.com.br
-
*/
-
-
class Contatos
-
-
private $db;
-
private $config;
-
private $select;
-
private $stmt;
-
-
function __construct()
-
-
$params['host'] = ‘localhost’;
-
$params['dbname'] = ‘java’;
-
$params['username'] = ‘root’;
-
$params['password'] = ”;
-
$database['adapter'] = ‘Mysqli’;
-
$database['params'] = $params;
-
$data['database'] = $database;
-
-
$this->config = new Zend_Config($data);
-
$this->db = Zend_Db::factory($this->config->database);
-
-
-
public function getData()
-
-
try
-
-
$this->select = $this->db->select();
-
$this->stmt = $this->select->query();
-
$result = $this->stmt->fetchAll();
-
return $result;
-
-
catch (Exception $e)
-
-
throw new Exception($e->getMessage());
-
-
}
-
-
-
try
-
-
‘nome’ => $data['nome'],
-
‘email’ => $data['email']
-
);
-
$retorno = $this->db->insert(‘tabela’, $dados);
-
return $retorno;
-
-
catch (Exception $e)
-
-
throw new Exception($e->getMessage());
-
-
}
-
-
-
try
-
-
$retorno = $this->db->delete(‘tabela’, ‘id = ‘.$data['id']);
-
return $retorno;
-
-
catch (Exception $e)
-
-
throw new Exception($e->getMessage());
-
-
-
}
-
-
-
try
-
-
‘nome’ => $data['nome'],
-
‘email’ => $data['email']
-
);
-
$where['id = ?'] = $data['id '];
-
return $this->db->update(‘tabela’, $dados, $where);
-
-
catch (Exception $e)
-
-
throw new Exception($e->getMessage());
-
-
}
-
-
}
-
?>
No ActionScript só precisaremos mudar o que será passado para o PHP, ao inves de VOs, mandaremos Arrays:
-
public function insertData():void
-
-
contatosVO['nome']= input_nome.text;
-
contatosVO['email'] = input_email.text;
-
ro.insertData(contatosVO);
-
Referências:
http://framework.zend.com/manual/en/zend.db.adapter.html
Recomendação de Produtos em eCommerce

Sistemas de Recomenda??o procuram recomendar informa??o e produtos (como computadores, m?quinas fotogr?ficas, filmes, videos, m?sicas, livros, p?ginas de internet, etc.) que possam ser de interesse do usu?rio, esses sistemas procuram e identificam padr?es de interesse, perfil e consumo. A partir desses padr?es os sistemas de intelig?ncia artificial geram associa??es entre produtos e consumidores aplicando t?cnicas de filtragem colaborativa.
Sistemas de Recomenda??o processam as informa??es que o usu?rio d? ao site durante a navega??o e entregam dicas de produtos relacionados aos gostos e interesses do consumidor, fazendo parte dos sistemas de Behavioral Targeting, ou Marketing Comportamental.
Por?m s? a utiliza??o de Intelig?ncia Artificial, Filtragem Colaborativa e outras t?cnicas computacionais n?o garantem o aumento de convers?o, pois o consumidor precisa impactado de maneira positiva pelas recomenda??es, a seguir voc? encontrar? dicas e melhores pr?ticas de como direcionar o usu?rio-consumidor para uma melhor compra.
Elementos de uma vitrine

T?tulo
- Utilize cores diferenciadas do layout do site;
- Utilize n?meros: “60% das pessoas” constroi um fator de confian?a na cabe?a do consumidor.
Cores
- Utilize cores contrastantes que d?em destaque para a se??o de recomenda??o. Cuidado para n?o sobrecarregar, a se??o deve parecer como um an?ncio.
Produtos
- Oferece sempre poucas op??es. Apenas 3 ou 4 recomenda??es s?o suficientes.
Chamada para a??o (Call-to-action)
- Se voc? utilizar mais de uma chamada pra a??o, tenha uma como principal com maior destaque dentro da se??o de recomenda??o.
Melhores pr?ticas
Confira as melhores pr?ticas para conseguir um maior ?ndice de convers?o de suas vitrines de recomenda??o.
Menos sempre ? mais

Tente o UpSell, pelo menos o Cross Sell

Exclua Recomenda??es

Descontos funcionam

Senso de urg?ncia

Continue testando

Sua loja utiliza sistemas de recomenda??es de produtos?
Atualizações automáticas silenciosas no Internet Explorer a partir de Janeiro/2012
Uma excelente notícia para quem desenvolve para Web: Hoje Ryan Gavin anunciou no blog oficial do Internet Explorer (em inglês) os planos para implementação de atualizações automáticas silenciosas no IE, começando já em janeiro de 2012 no Brasil e Austrália (isso mesmo, Brasil fará parte do piloto).
Essas atualizações ocorrerão, como o próprio nome diz, de forma automática e silenciosa, sem necessidade de nenhuma intervenção do usuário e possivelmente (pele menos é o que esperamos) sem reiniciar o computador. Esse tipo de atualização já é comum para usuários do Google Chrome.
Mesmo sendo automáticas e sem intervenção, ainda será possível optar por não atualizar (há casos de empresas que têm aplicações que dependem de versões específicas do browser e não podem simplesmente atualizar), ou mesmo remover a atualização e voltar para a versão anterior, mas o padrão agora será a atualização automática para a última versão.
A atualização será para a última versão disponível na plataforma do usuário, ou seja, usuários do Windows XP receberão o IE8 e usuários do Vista e Windows 7 receberão o IE9 (e IE10, quando for lançado).
Agora é esperar que essa atualização realmente diminua de forma substancial o tamanho da base instalada de IE6 e IE7 (e talvez IE8 também, mas não tanto) para que possamos desenvolver sites e aplicações com mais tranquilidade e menos dores de cabeça, além de ajudar a convencer os clientes de que não será mais tão imprescindível suportar versões tão antigas do browser da Microsoft.
versão traduzida para português do post sobre este anuncio
Dicas para ser levado a sério
Voc? j? percebeu que, em qualquer grupo, algumas pessoas s?o naturalmente levadas a s?rio, e outras n?o? E isso raramente tem rela??o com ser ou n?o sisudo – o indiv?duo de gravata com mais cara de brabo e sem gra?a numa equipe pode n?o ser levado a s?rio por ningu?m, e o colega que est? sempre de bom humor pode ser visto com respeito por todos.
E o que os outros v?em em n?s, por interm?dio das nossas atitudes, come?a nas nossas escolhas e no modo como n?s mesmos nos vemos – em outras palavras, o caminho come?a quando n?s mesmos come?amos a nos levar suficientemente a s?rio. O artigo “5 Reasons People Don’t Take You Seriously and How to Fix It” apresenta uma s?rie de raz?es pelas quais as pessoas podem n?o estar levando voc? a s?rio, e convido voc? a pass?-las rapidamente em revista neste meu resumo.
Vamos a elas:







