Expressões regulares com Regex Coach

Neste artigo venho apresentar o software “The Regex Coach” que auxilia o desenvolvimento de expressões regulares, com validações enquanto cria os padrões da expressão regular.

The Regex Coach é basedo em lisp e desenvolvido por estudantes sob a licença free, pode ser instalado em qualquer sistema (Unix,Linux,Windows). Para utiliza-lo basta a cessar o site
http://weitz.de/regex-coach/ e baixar o arquivo através deste link http://weitz.de/files/regex-coach.exe.

Utilização:
Nesta primeira tela a área superior “Regular expression” é onde podemos colocar a expressão regular. Logo abaixo em “Target String” onde colocamos a string a ser testada com a expressão, note a string
está em amarelo isso significa que está válida de acordo com a expressão definida no box superior “Regular expression“.

Simulando erro
Caso a string esteja incorreta levando em consideração a expressão a string fica sem a cor amarela que pode ser visualizada na tela abaixo. Neste caso ela não está válida pois o endereço está faltando um “w” e com isso está inválida a expressão.

Para quem não reconheceu esta expressão válida endereços web com final “br” “http://www.qualquernome.(com ou org ou gov).br”

Abaixo segue algumas expressões regulares bastante usadas

Data (dd/mm/aaaa)
Expressão: ^([0-9]|[0,1,2][0-9]|3[0,1])/([\d]|1[0,1,2])/\d{4}$
Resultado: 21/12/2007

Numero Decimal
Expressão: ^\d*[0-9](\.\d*[0-9])?$
Resultado: 234.342

Arquivos Documentos
Expressão:^[a-zA-Z0-9-_\.]+\.(pdf|txt|doc|csv)$
Resultado: world-domination.pdf

E-mail
Expressão:^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$
Resultado: info@lymas.com.br

Codigo Cor HTML
Expressão: ^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$
Resultado: #00ccff

Arquivo de Imagem
Expressão:^[a-zA-Z0-9-_\.]+\.(jpg|gif|png)$
Resultado: new-pic_company.jpg

Endereco IP
Expressão:^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$
Resultado: 192.168.0.1

Arquivos Multimídia
Expressão:^[a-zA-Z0-9-_\.]+\.(swf|mov|wma|mpg|mp3|wav)$
Resultado: company-presentation.swf

Data Formato Mysql
Expressão:^\d{4}-(0[0-9]|1[0,1,2])-([0,1,2][0-9]|3[0,1])$
Resultado: 2005-09-02

Telefone (BR)
Expressão:^\(?\d{2}\)?[\s-]?\d{4}-?\d{4}$
Resultado: (11) 5555-1977

Codigo Postal (EUA)
Expressão:^([A-Z][0-9]){3}$
Resultado: V2B2S3

Hora (HH:MM)
Expressão:^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}$
Resultado: 12:29

URL
Expressão:^(http[s]?://|ftp://)?(www\.)?[a-zA-Z0-9-\.]+\.(com|org|net|mil|edu|ca|co.uk|com.au|gov|br)$
Resultado: http://www.google.com

Telefone Internacional
Expressão:^(([0-9]{1})*[- .(]*([0-9a-zA-Z]{3})*[- .)]*[0-9a-zA-Z]{3}[- .]*[0-9a-zA-Z]{4})+$
Resultado: 1.245.532.3422

Sites de referência:
http://weitz.de/regex-coach/
http://imasters.com.br/artigo/2515/javascript/regular_expression/

Enviando dados através do Jquery com ASP

Neste artigo, pretendo apresentar uma maneira de usar um método post de formulário com o uso de Jquery. Com auxílio da função Ajax disponível na base do Jquery, será apresentada uma forma que envia os dados sem a necessidade do recarregamento da página dando ao usuário uma experiência melhor com o sistema.

Para apresentar o recurso, escolhi um modelo de cadastro de Newsletter com banco de dados MySQL, mas é possível utilizá-lo de diversas maneiras seja para cadastros, consultas ou exclusões.

Como havia dito, utilizaremos a biblioteca Jquery que pode ser encontrada no endereço http://jquery.com/. Para este artigo, utilizaremos a versão 1.4.2 min, porém qualquer versão a partir da 1.2 pode ser usada, já que todas contem em seu núcleo a função Ajax. Salve o arquivo com o nome “jquery-1.4.2.min.js” na mesma pasta que irá salvar as outras páginas.

Agora iremos criar o banco de dados Mysql. Abaixo segue a estrutura definida.

DROP DATABASE IF EXISTS `newsletter`;
CREATE DATABASE `newsletter`;
USE `newsletter`;

CREATE TABLE `newsletter` (
  `Id` int(11) NOT NULL auto_increment,
  `Nome` varchar(255) default NULL,
  `Email` varchar(255) default NULL,
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Com a base de dados pronta, iremos criar a página do formulário e posteriormente criaremos a página que recebe os dados e realiza o cadastro. Página do formulário. Salve com o nome “Form_Newsletter.asp”

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulário de Cadastro</title>

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<script>
        $(document).ready(function() { $("#button").click(function () {
        //Declarando as variaveis
                var Nome ="";
                var Email ="";
                //Recuperando os dados e atribuindo as variaveis
                Nome = $("#Nome").val();
                Email = $("#Email").val();
        //Inicio da funcao
        $.ajax({
                //Metodo utilizado
                type: "POST",
                //Pagina que recebe os daods
                url: "Recebe_dados.asp",
                //String de dados enviada
                data: "Nome="+Nome+"&Email="+Email+"",
                //Inicio da funcao que requisita a resposta da pagina onde recebeu os dados
                success: function(msg){
                alert( "Sucesso! " + msg );
                        //Limpando os valores dos campos
                        $("#Nome").val('');
                                $("#Email").val(''); 

                                }
                        });             

                });
        });
</script>

</head>

<body>
<p>Newsletter</p>

  <table width="280" border="0">
    <tr>
      <td>Nome:</td>
      <td><input type="text" name="Nome" id="Nome" /></td>
    </tr>
    <tr>
      <td>E-Mail:</td>
      <td><input type="text" name="Email" id="Email" /></td>
    </tr>
    <tr>
      <td> </td>
      <td><label>
        <input type="submit" name="button" id="button" value="Cadastrar" />
      </label></td>
    </tr>
  </table>

</body>
</html>

Na página acima, notamos a função “$.ajax” nessa área. Onde será aplicado o recurso que faz a chamada, transferindo os registros para a página de cadastro.

        $.ajax({
                //Metodo utilizado
                type: "POST",
                //Pagina que recebe os daods
                url: "Recebe_dados.asp",
                //String de dados enviada
                data: "Nome="+Nome+"&Email="+Email+"",
                //Inicio da funcao que requisita a resposta da pagina onde recebeu os dados
                success: function(msg){
                alert( "Sucesso! " + msg );
                        //Limpando os valores dos campos
                        $("#Nome").val('');
                                $("#Email").val(''); 

                                }
                        });

Página que realiza a inclusão dos dados enviados pela função acima. Salve com o nome “Recebe_dados.asp

<%
'Declarando a variavel de conexao
Dim Conexao
'Atribuindo o objeto a variavel de conexao
Set Conexao = Server.CreateObject("ADODB.Connection")
'String de conxao para base de dados Mysql
Conexao.ConnectionString = "driver={MySQL ODBC 5.1 Driver};server=localhost;uid=usuario;pwd=senha;database=newsletter"
'Abrindo a conexao
Conexao.Open

'Funcao para tratar as variaveis
Function Trata_Request(txt)

        entrada = replace(txt,"'","")

                Trata_Request=entrada
        end Function

        'Recuperando as variaveis enviadas pelo metodo post
        Nome = Trata_Request(request.Form("Nome"))
        Email = Trata_Request(request.Form("Email"))

        'Instrucao SQL para inserir as variaveis
        set cadastra = Conexao.execute("INSERT INTO newsletter(nome,email) VALUES('"&Nome&"','"&Email&"')")
%>

Dados recebido com sucesso!

Ao receber os dados a página, mande uma resposta de ok e, com isso, é apresentada a informação que os dados foram cadastrados com sucesso.

Vimos neste artigo uma maneira de melhorar a usabilidade de um sistema de Newsletter que pode ser aplicado a outros sistemas, focando em uma melhor experiência dos usuários. Com os recursos atuais e com boas práticas, podemos economizar recursos de processamento ao transferir informações entre páginas.

Veja mais no Imasters

http://imasters.uol.com.br/artigo/18163/asp/enviando_dados_atraves_do_jquery_com_asp/

NopCommerce e-commerce desenvolvido em .net

Neste Artigo apresentarei a ferramenta de comércio eletrônico desenvolvida na plataforma .Net da Microsoft.

NopCommerce é um carrinho de compras totalmente personalizável, Open source o e-commerce é desenvolvido em ASP.NET 3.5 com base de dados MS SQL 2005 de back-end. Fácil de usar a solução do carro de compras é especialmente adequada para comerciantes que têm superado os sistemas existentes. Pode ser hospedado em sistemas IIS com suporte para a tecnologia .NET 3.5 .

Link para download do NopCommerce
http://www.nopcommerce.com/Downloads.aspx

O Nopcommerce também pode ser instalado através da ferramenta Microsoft Web Platform Installer 2.0.

Download
http://www.microsoft.com/web/Downloads/platform.aspx

Imagens

SlideGen1.ashx

Tela de Administração

SlideGen.ashx

Alguns servidores para hospedagem

http://www.agenciadot.com.br

http://www.locaweb.com.br

http://www.dialhost.com.br/

Internet Explorer 6 uma morte lenta e dolorosa

Um sonho de todo desenvolvedor de aplicativos para Web é a Morte do ie – 6.0 que é um desastre da Microsoft e foi um grande freio de mão puxado em todos estes anos. Bastou aparecer uma ferramenta melhor desenvolvida nesse caso o Mozilla Firefox para abrir os olhos da comunidade e da Microsoft para o enorme desperdício que foi a hegemonia desse software.

O desaparecimento será lento e doloroso para todos nós, analisando as estáticas de utilização de browsers a adoção de novos navegadores é vagarosa e quase sempre está atrelada ao sistema operacional que é dominado pelo Windows xp acompanhado do borwser ie 6.0.

meses

Vendo o gráfico podemos perceber que o ie 6.0 perdeu mercado nos últimos três meses, sua participação passou de 15.21% (julho 2009) para 13.28% ( setembro 2009) cerca de 2% de perda. É bom ver que podemos esperar em um futuro próximo uma participação de insignificantes 0.2%, essa perda pode estar atrela as boas e engraçadas iniciativas que vemos dos desenvolvedores.

“Atualize seu navegador” essa é a bandeira que um importante site de tecnologia levanta, essa campanha conta com uma barra que é exibida quando o usuário acessa o site utilizando o navegar ultrapassado veja ela logo abaixo.

atualize_navegador
Outra iniciativa muito bem humorada é a “Bom demais para Internet Explorer”. Contando com uma imagem no canto inferior esquerdo aplicada com folha de estilo logo é notada, para quem se interessa pelo assunto arranca algumas risadas. Veja o logo abaixo.

selo

É bom saber que existem alternativas como Mozilla Firefox, Safári e Opera para combater o domínio da Microsoft. Em nenhuma ocasião o domínio de uma única empresa é benéfica para andamento do comércio e evolução do conhecimento.

Links:

http://imasters.uol.com.br/crossbrowser/pt-br/

http://www.w3junkies.com/toocool/index.php?language=br

Fonte do grafico

http://www.w3counter.com/globalstats.php

Abrir e Importar arquivo DBF

Quem nunca precisou importar um dbf ?

É comum encontrarmos ainda bases em .dbf sendo usadas ativamente. Um ótimo recuso do Excel 2007 é o fato dele abrir normalmente arquivos dbf, basta abrir o arquivo como se faz para abrir um .xls e depois salva-lo, pronto nesse momento sua tabela já foi exportada para .xls.