Assine:
RSS do Blog...

Mercado Ajax

O que é este site?

MercadoAjax é um serviço de busca de produtos no MercadoLivre que exibe os resultados rapidamente, sem recarregar toda a página a cada consulta.

Experimente, muito legal…

http://www.buscashop.com/mercadoajax

wpmanager

Quem trabalha com Wordpress de forma profissional com certeza deve conhecer um plugin chamado WP-DownloadManager, do Lester Chan, um dos mais atuantes desenvolvedores de plugins para Wordpress, veja alguns.

Pois bem, o Wp-DownloadManager é uma mão na roda para disponibilizar arquivos para download, permite criar categorias, ordenar a disponibilização dos arquivos e ainda faz estatísticas de download.

Tenho usado ele na intranet de um dos meus empregadores, com sucesso. Mas vamos aos problemas que precisei solucionar.

1.  Temos diversas categorias de downloads, e acertamos que a ordem que mostraríamos os arquivos aos usuários era os mais novos primeiros, ordenados pelo file_id dos arquivos, veja abaixo a tabela do plugin.


CREATE TABLE  `wp_downloads` (
`file_id` int(10) NOT NULL auto_increment,
`file` tinytext NOT NULL,
`file_name` text NOT NULL,
`file_des` text NOT NULL,
`file_size` varchar(20) NOT NULL default '',
`file_category` int(2) NOT NULL default '0',
`file_date` varchar(20) NOT NULL default '',
`file_updated_date` varchar(20) NOT NULL default '',
`file_last_downloaded_date` varchar(20) NOT NULL default '',
`file_hits` int(10) NOT NULL default '0',
`file_permission` tinyint(2) NOT NULL default '0',
PRIMARY KEY  (`file_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

Tudo estava funcionando maravilhas,  os usuários fazem o upload dos arquivos, levando em consideração que os mais antigos devem ser inseridos primeiro, e ai será exibido como planejamos, ficando assim:

277/2009 – Designa Comissão Especial …..
» 42.5 KiB – 5 downloads – 02 de novembro de 2009

276/2009 – Designa Comissão Especial encarregada de elaborar …..
» 41.0 KiB – 3 downloads – 05 de novembro de 2009

275/2009 – Designa o servidor ….l
» 43.0 KiB – 2 downloads – 10 de novembro de 2009

O problema é que como a intranet atual foi migrada de uma versão anterior, onde não existia um CMS, vários arquivos foram inseridos a esmo, e que ao serem exibidos não correspondem a lista descrescente por nome, como no exemplo acima.

Embora que sistema permita mudar isso facilmente, isso não era possível de se fazer, pois iria afetar todas as outras categorias, pois as mudanças de ordenação são globais.

Vejamos a solução:

Primeiro foi dado um Select na tabela WP_DOWNLOADS para retonar o último FILE_ID.


SELECT max(file_id) FROM  wp_downloads

retornou: 969

Com o uso de um contador, é possível simular uma contagem sequencial, veja:


set @contador:=970;
SELECT (@contador:=@contador+1), wp_downloads.* FROM `wp_downloads` WHERE `file_category`= 10 order by `file_name` asc

Ou seja, a idéia é fazer com que os valores desse SELECT sequencial possa ser aplicado na coluna file_id da tabela wp_downloads.

Com a ajuda de meu amigo Edcley Firmino – o papa do SQL -,  chegamos a decisão de fazer uma Procedure utilizando RowID. Veja como ficou:


BEGIN

DECLARE vcontador INT;
declare b,vfile_id int;
DECLARE cursor_1 CURSOR FOR SELECT file_id
FROM wp_downloads WHERE file_category= 10
order by file_name ASC;

DECLARE EXIT HANDLER FOR NOT FOUND SET b=1;
OPEN cursor_1;
set vcontador := 970;
REPEAT
FETCH cursor_1 INTO
vfile_id;
update wp_downloads
set file_id = vcontador
where file_id = vfile_id;
set vcontador := vcontador + 1;

UNTIL b=1 END REPEAT;
CLOSE cursor_1;

END

Pronto, ao executar-mos essa procedure, todos os registros da coluna File_ID foram atualizados, e então foi possível voltar a exibir corretamente os arquivos em ordem decrescente.

Funciona maravilhosamente bem… é isso.

Link: http://www.hongkiat.com/blog/85-free-high-quality-silhouette-sets/

YUI Library – Yahoo!

A YUI Library é um framework Javascript concorrente do famoso Jquery. É formado por um conjunto de utilitários e controles para criação de interfaces web interativas e ricas. Ele utiliza recursos como DOM, DHTML e Ajax.

Abaixo segue um roteiro da galeria de exemplos da versão YUI 3, analise e veja se é interessante utilizar este framewok

Por que viajar tanto?

Uma das coisas que mais gosto na vida é viajar…algumas pessoas não entendem o porque disso, e acham até uma besteira eu já ter programado todos os feriados, e as possíveis viagens que vou fazendo no decorrer do ano. Participo inclusive de diversas comunidades e redes sociais ligadas ao turismo.

Mas achei uma frase de Alain de Bouton, que acredito que retrata exatamente este sentimento de querer viajar a cada oportunidade.

Nossas viagens expressam como poderia ser a vida, fora das restrições do trabalho e da luta pela sobrevivência

viaoveio

Continue Reading »

Howto:  Corrigindo Charset – LAOP (Linux+Apache+Oracle+PHP)
=============================================

Vamos ao cenário:

“Eu possuo um servidor Debian com Apache, PHP, e Client do Oracle 9i entre outras coisas. Na hora de mandar as informações para o banco se a informação contiver acentuação ela grava com erro no banco por exemplo:
Se eu quiser gravar joão no banco fica: joco

Eu ja fiz o teste e realizei um insert direto na base através do sql plus e não deu problema os acentos aparecem, o problema acontece apenas quando eu envio a informação através de uma página PHP.  E o mesmo acontece quando tenta recuperar a informação do Banco.

Tentei mudar o charset da página com:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Mas mesmo assim as informações apareciam com caracteres estranhos.

Para Acentuação:
Adicione as seguinte linhas no arquivo: /usr/local/apache2/bin/envvars

NLS_LANG="portuguese_brazil.we8iso8859p1"
export NLS_LANG

O arquivo envvars pode estar em outro local, depedendo de como foi realizada a instalação, em um dos meus servidores o aquivo estava em:  /etc/apache2/envvars

Provavelmente se as linhas forem adicionadas no /etc/profile o problema também se resolva, porém não testei…

Após isso é so reiniciar o Apache e testar.

Postgresql – Backup e Restaure

  • Backup/Dump uma base

/usr/local/pgsql/bin/pg_dump BASE > arquivo_backup.sql

  • Importando a base

/usr/local/pgsql/bin/psql -d BASE -f ARQUIVO.sql

Veja como importar arquivo SQL utilizando console PSQL.

psql -d BASEDEDADOS -f ARQUIVO.SQL -U USUARIO

Exemplo:

#su postgres

#psql -d bancoxyz -f meubanco.SQL -U postgres

para ver o que está sendo executado, adicione: -a

A maioria dos visitantes deste blog que atuam na área de desenvolvimento de sistemas, encontram-se na faixa etária de 20 a 35 anos. Algo que é muito difícil de se ver são pessoas acima dos 40 anos que mantém a mesma vontade de aprender coisas novas, no mesmo rítmo de quando eram adolescentes, principalmente em se tratando de programação.

O vídeo abaixo é um screencasts do vedovelli, com um cara que é realmente o oposto, Luca Bastos…. veja na entrevista o que motiva alguém a continuar desenvolvendo….

http://www.vimeo.com/6631342
YouTube Preview Image

Vanadium é um plugin para jQuery que permite validar formulários de maneira simples e com poucas linhas de código. Permite validar campos obrigatórios, numéricos, email e outros.

Validar formulários é muito importa no desenvolvimento web, pois previne-se a inserção de dados inválidos ou em formato inadequado.

Obivamente estas validações devem vir acompanhadas de uma validação do lado do servidor para ter uma dupla proteção. Veja como utilizar do lado do cliente a biblioteca Vanadium para validar seus formulários.

Como utilizar o Vanadium
A primeira coisa a fazer é baixar o script do site oficial (), pode-se escolher qualquer versão: vanadium.js contém comentários que podem ser utilizados para edita. O vanadium-min.js é o mesmo script, porém de forma comprimida para acelerar o carregamento.

O próximo passo é incluir a biblioteca Jquery (eu prefiro utilizar o Jquery diretamente do Google AJAX Libraries API), e Vanadium diretamente em sua página, dentro das tags Head, para fazer uso de seus métodos.

  1. <scripttype=“text/javascript”src=“http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js”></script>
  2. <scripttype=“text/javascript”src=“vanadium.js”></script>

Agora é so adicionar diretamente nos campos de nosso formulário, o tipo de validação que queremos aplicar, isso é fácil fazer através do uso de classes de estilos. Alguns dos tipos de validações:

  • :required o campo é obrigatório.
  • :integer aceita-se somente números inteiros.
  • :float aceita-se numeros decimais.
  • :length;n é obrigatório que o campo tenha pelo menos 1 caractere.
  • :min_length;n aceita-se n caractere como valor mínimo.
  • :max_length;n aceita-se n caractere como valor máximo.
  • :accept o campo checkbox deve ser marcado.
  • :email o campo deve ter um endereço de email válido.

Por exemplo, digamos que tenhamos um formulário de registro, onde os campos usuário e senha são obrigatórios, e o campo de email deve aceitar somente email válido, então teríamos um formulário assim:

  1. <formmethod=“post”action=“”>
  2. Usuario:
  3. <inputname=“usuario” type=“text” id=“usuario” size=“36″ class=“:required” />
  4. Senha:
  5. <inputname=“senha” type=“text” id=“senha” size=“36″ class=“:required” />
  6. Email:
  7. <inputname=“email”type=“text” id=“email” size=“36″ class=“:email” />
  8. <inputtype=“submit”name=“btsend”id=“btsend”value=“Registro” />
  9. </form>

Simples assim, com isso já teremos nosso formulário validado.

Agora se deseja personalizar esta validação basta modificar os estilos e as mensagens de erros e confirmações. Veja mais detalhes diretamente no site da biblioteca.

Link: Vanadium