josedasilva @ 23:47

Seg, 05/02/07

Bas Wenneker necessitou de uma framework para construir gráficos, usando javascript, para o Prototype, não encontrou e colocou mãos á obra para fazer nascer o Plotr.

À primeira vista deixou-me bastante satisfeito com o resultado final, a compatibilidade não é total, mas é compatível com alguns dos mais importantes browsers.

Plotr

Compatibilidade

(O Plotr faz uso de HTML Canvas suportado pelos seguintes browsers)

  • Firefox 1.5+
  • Safari 2.0+
  • Opera 9.0+
  • IE6+ (emulated)

Mais detalhes na página do Plotr!


Tags: ,


josedasilva @ 15:15

Sex, 19/01/07

A Framework Javascript Prototype, tem uma nova página, mudou-se para prototypejs.org, com novo visual, mais e melhor documentação.

Já conheço a framework há algum tempo, e uso-a em diversos projectos, e sem dúvida que a nova página e os novos recursos vão ajudar quem só agora inicia o desenvolvimento com a framework.

Outra das novidades é ainda o blog, que apesar de ainda estar nú, apenas com o post de início, me deixou curioso sobre quais vão ser os conteúdos.

Tags: ,


josedasilva @ 18:04

Qua, 20/09/06

A Zend lançou à cerca de uma semana a Certificação em Php5, esta certificação não se trata apenas de um upgrade a certificações PHP4, é um exame novo completamente re-desenhado que abrange as seguintes áreas:

  • O básico do da linguagem

  • XML e Webservices

  • Funções

  • Arrays

  • Programação por Objecto

  • Programação de Rede

  • Design e Teoria

  • Diferenças PHP4/PHP5

  • Segurança

  • Strings e Patterns

  • Bases de Dados

  • Funcionalidades Web



O programa detalhado pode ser consultado na página da Zend.

O custo da certificação PHP5 é de $125, o mesmo preço da certificação da de PHP4, se optar pelas duas juntas pagará $225 (-$25) do que se efectuar as certificações separadamente.

Ao contrário do pensado por muitas das pessoas com quem troco impressões regularmente existem diversos centros aptos a efectuar o exame da certificação em Portugal, para os descobrir basta ir á página da Vue e navegar pela secção de localização de centros de testes.

Tags:


josedasilva @ 16:51

Qua, 20/09/06

Pois é, o uso detse tipo de técnicas, onde não temos o total controlo sobre a velocidade e ordem de recepção de pedidos leva por vezes a histórias destas, aliás é por isso mesmo se chama assíncrono.

Num dos testes de laboratório que tanto gosto de efectuar, estive a testar multiplos pedidos simulâneos assincronos, o que me levou à descoberta de um possível problema, quando não temos em mente que dois pedidos assíncronos, efectuados no mesmo momento, podem ter tempos de resposta variáveis.

Imaginemos a seguinte iteracção:

1. Click num qualquer botão leva ás seguintes acções:

1. Envio de pedido para alterar o estado de um registo na base de dados e actualização da "div" actual
2. Envio de pedido de actualização de uma segunda "div" com o registo editado anteriomente já actualizado

A ideia é simples, imaginem-se duas listas, onde numa se listam registos activos e na outra se listam registos inactivos. Imagine-se que se deseja inactivar um registo, a estratégia passa por actualizar o registo na base de dados como inactivo e actualizar ambas as listas de modo a que o registo passe a constar imediatamente da lista certa.



  1. function deleteRecord() {

  2. doAjaxTODeleteRecordAndUpdateDeletedRecordList() ;

  3. doAjaxTOUpdateActiveRecordsList();

  4. }



O problema ocorre quando o pedido assíncrono de edição do registo para estado inactivo é executado após o pedido de actualização das listas. No meu caso o registo de edição era efectuado antes da actualização das listas, umas vezes e noutras nem por isso.

A solução poderia passar por:



  1. function deleteRecord() {

  2. doAjaxTODeleteRecordAndUpdateDeletedRecordList();

  3. setTimeout(doAjaxTOUpdateActiveRecordsList(),1000);

  4. }



A solução pode passar por obrigar o segundo pedido a ter um delay de alguns micro segundos, não garante que é tratado antes, mas garante que existem infimas probabilidades de não o ser. Ou então executar apenas o segundo pedido quando recebermos a resposta do primeiro.
UPDATE [21 Set 2006]
O Marco, do Webaserio, apresentou uma outra solução para o problema, basicamente a alternativa dele seria actualizar as duas listas na mesma chamada assíncrona, eliminando assim uma das chamadas e conseguindo garantir a ordem das respostas. Outra das soluções falada, em conversa com ele, era a da possibilidade de efectuar a actualização das listas apenas com javascript, e esta seria a solução mais eficaz, que sonsistia em mudar os elementos de lista usando javascript, directamente no DOM.Existem diversas formas de efectuar o mesmo procedimento, vamos ter de optar pela mais correcta dado o problema.

Tags:


josedasilva @ 17:15

Sex, 18/08/06

Cada vez mais, preciso de usar pedidos assíncronos, usando Javascript, de modo a facilitar o modo como o utilizador usa o sistema, a nível de interface e até para reduzir a bandwidth gerada, num desses usos surgiu um problema que não tinha colocado.

Se o browser Firefox, trata cada pedido como um novo pedido, sem o colocar em cache, por outro lado o Internet Explorer, tem o hábito de fazer cache do pedido, devolvendo assim resultados que não deveria, uma vez que o pedido é efectuado a uma página com resultados dinâmicos.

A solução foi colocar em todos os meus scripts que são chamados através de chamadas assíncronas, cabeçalhos de expiração de cache, aqui fica um exemplo de cabeçalhos para o efeito.

< ?
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 1 Jan 1980 05:00:00 GMT"); // Data no passado
?>


No manual do PHP este exemplo é mostrado como um método de obrigar os browsers e os proxy's a inactivarem a cache, no meu caso resultou.

Tags:


josedasilva @ 22:16

Seg, 10/07/06

LightboxDe um modo simples e por vezes muit elegante o Lightbox permite a qualquer "sítio" ter uma galeria de fotos ou um simples "zoom" de uma imagem, o Lightbox não é mais que um "script" em linguagem javascript que usando código não obstructivo permite o efeitos de galeria ou zoom de uma imagem.


O script foi desenhado por Lokesh Dhakar, em encontra-se neste momento na versão 2, dispõe já de alguns hacks/mods que permitem inclusivé tornar a galeria num "slideshow".

Desenhei uma página de exemplos, onde se podem verificar as potencialidades do lightbox, pode visualizá-la aqui.



josedasilva @ 23:09

Sex, 12/05/06

O Google, Yahoo , Altavista e tantos outros têm vindo nos últimos anos a tentar proteger os seu editores e anunciantes do grande problema de cliques fraudulentos nos anúncios pagos.

Esta "fraude" pode vir em diversas formas, desde visitantes que decidem clicar no link do concorrente de modo a exceder mais rapidamente o orçamento diário e este deixar de ser exibido, já para não falar no prejuizo do concorrente, a motores que fazem esse trabalho por eles mesmos, nos motores podemos ter um único motor, ou um grupo distinto de motores espalhados pelo mundo.

O resultado é "Prejuízo", para o motor de pesquisa e para o anunciante.

Algumas das formas encontradas por estes mecanismos foram, muitas vezes usadas em conjunto:

* Filtrar o número de cliques permitidos por IP / Visitante , permitindo apenas 1 ou um número infimo de clicks.

* Não contabilizar um clique que vem de um visitante se este nao aceitar cookies, tentaram desta forma resolver o problema dos "robots" , que não aceitando cookies eram ignorados, no entanto isto esbarrou na recente politica anti-cookie , por motivos de privacidade de alguns browsers e pessoas, não sendo assim fiável.

* Ter em conta o cabeçalho enviado pelo browser indicando a sua identificaçã, USER AGENT, no entanto os "robots", muitos deles, possuem de mecanismos de multi USER AGENT, iludindo assim a validação.

* Geo-Referência: Ignorar cliques tendo em conta a posição no globo do visitante, como para alguns negócios a localização do indivíduo é importante, tendem-se a bloquear, ignorar, pontos do globo, não é necessário dizer que este tipo de técnica aplica-se em muitos poucos casos.

Existem algumas técnicas com algum grau de eficácia no que concerne ao problema do click fraudulento, no entanto ainda nenhum dos grandes motores conseguiu encontrar a fórmula que lhes poderá render milhões, até lá, vão jogando com os meios que dispõem.



josedasilva @ 22:59

Sex, 05/05/06

O sistema de templating Smarty pode ser usado para tratar também o “problema” do desenvolvimento dos sistemas multi-linguas.

A solução encontrada foi a criação de um ficheiro de configuração usando secções para separar as diversas linguas conseguindo assim um grau de facilidade de actualização acima do normal.

Ficheiro “language.conf”

[pt]
titulo=”Portugal”
saudacao=”Bem Vindo”
[uk]
titulo=”Ingles”
saudacao=”Welcome”
[es]
titulo=”Espanhol”
saudacao=”Bienvenido”

Ficheiro index.tpl

{config_load file=”language.conf” section=$language}
Language and Smarty
{$smarty.config.saudacao}
Lingua: {$smarty.config.titulo}

Ficheiro index.php

< ?
// Carregar a biblioteca do Smarty
require('smarty/Smarty.class.php');

// Array com as linguagens permitidas
$languages = array("pt","uk","es");

// Iniciar o objecto smarty
$smarty = new Smarty;

$smarty->template_dir = ‘./’;
$smarty->compile_dir = ‘./;
$smarty->config_dir = ‘./’;

if(!isset($_GET[”language”]) || !in_array($_GET[”language”],$languages))
$_GET[”language”]=”pt”;

$smarty->assign(’language’,$_GET[”language”]);
$smarty->display(’index.tpl’);
?>

Consegui assim um grau de separação que me permite fornecer ao “cliente” a possibilidade de tradição do sistema sem necessitar de conhecimentos de qualquer linguagem, tornando o processo intuitivo.Espero que a técnica ajude mais alguém.

Tags:


josedasilva @ 16:38

Sex, 21/04/06

Todos os meses desembolso um pouco do meu vencimento para livros técnicos, este mês e acabadinhos de chegar, as escolhas cairam em:



Ainda não posso dar recomendações ou efectuar quaisquer comentários, ainda só olhei para a capa quando so estava a desempacotar da embalagem da Amazon.

Tags: , ,


josedasilva @ 10:13

Seg, 27/03/06

Google Pages O Google lançou recentemente o seu sistema de criação de páginas online. Após alguns testes, as carecteristicas principais do sistema são:

Formatação de Texto
Possibilidade de colocar o texto em negrito e itálico

Escolha da cor do texto através de uma palete gráfica

Escolha da fonte e da dimensão do texto a usar

Alinhamento de texto

Uso de Headers

Outras Características
Possibilidade de envio de imagens e inserção de imagens

Possibilidade de inserção de hiperligações

Escolha do template visual a usar de entre 41 à escolha

Possibilidade de optar por 4 estruturas, layouts para cada template.

Breve e curta análise
Após analisar vejo uma preocupação em o sistema desenhar estruturas tabless, sem recorrer a tabelas para estruturar o documento, no entanto nenhuma das páginas criadas valida o HTML, sendo uma versão beta, vamos esperar que a validação seja tomada em conta até ao lançamento final.

Outra preocupação notada é o de usar endereços search engine friendly.

Exemplo da página usada » http://josedasilva.googlepages.com/

Tags: , ,

Blog pessoal de José Silva. Sou programador informático, nos últimos anos dedicado quase exclusivamente ao PHP.
Fevereiro 2011
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4
5

6
7
8
9
10
11
12

13
14
15
16
17
18
19

20
21
22
23
24
25
26

27
28


Pesquisar
 
subscrever feeds
blogs SAPO