Nuevos Entornos Virtuales…

febrero 26, 2009

Hoy 26 de febrero me saque de encima la primer materia del ingreso a la carrera.

El examen consistio en un multiple choice de 50 preguntas sobre. Sistemas de Computacion (basico), Sistema Operativo (Window 98), Procesador de texto (Word), Sistema de correo electronico (Outlook Express) Telecomunicaciones, Internet y Virus Informaticos.

Bueno lo que a simple viste deberia haber sido una tontera, me desepcione al ver que falle en 10 de las 50 preguntas, la verdad que ni quise revisar el examen por la bronca que aun me dura. Es que no puedo entender que trabajando desde hace mas de 15 años en sistemas pueda fallar en preguntas relacionadas con smtp o subrayar texto en word.

Al margen y no para justificar esto que a mi entender es bochornoso, creo que la materia esta medio como pasadita de moda y carente de contenido serio, me explico por que suena como a revancha. Como se habran dado cuenta esta orientadicima a plataforma windows, y todos los productos microsoft de licencia comercial, yo se que en todos lados hay un oficce crackeado, creo que hasta hubiese resultado mas productivo estudiar la version microsoft work o mejor ahun Open Oficce.

Mas alla de todo creo que lo mas importante era dar el salto y pasar esta etapa, y tambien sirve para ir preparandonos por que me imagino que esto se va a ir poniendo cada vez mas heavy, asi que hay que estudiar un poco mas y prestar mucha atención, creo que la clave esta en utilizar mas el tiempo que provee el examen para una relectura.

Anuncios

Servicio de Validacion de Mail

febrero 23, 2009

En base a un trabajo que se presento en mi oficina, me pidieron realizar un servicio web que cumpla la funcion de una realizar la comparacion general para un mail valido.

Se me ocurrio que podria usar una “Expresion Regular”  y como muy vago de mi parte, no me puse a realizarla, si no que busque algunas existentes y analice probe y finalmente me quede con la siguiente

^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$.

Pero despues de hacer el testeo general y completo de esta expresion regular pasón que no me valida direcciones que despues del arroba tenga un numero, lo cual me dejaba fuera direcciones con por ejemplo nombre@2media.com y para no romper la expresion y para que todo salga rapido se lo deje a resolucion a nuestro amigo C#.

Bueno llego la hora de plasmarla en el servicio lo cual me quedo algo asi.


using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Text.RegularExpressions;
using System.Configuration;

namespace TestEmail
{
///
/// Summary description for EmailTest
///
[WebService(Namespace = “http://anses.gov.ar/arquitectura/”)]
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
[ToolboxItem(false)]
public class EmailTest : System.Web.Services.WebService
{
[WebMethod]
public bool ValidaEmail(string sMail)
{
return IsEmail(sMail);
}
[WebMethod]
private bool IsEmail(string email)
{
const string PatronEmail =
@”^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@”
+ @”((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.”
+ @”([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|”
+ @”([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$”;
bool bRes = Regex.IsMatch(email, PatronEmail);
if (bRes)
{
return FiltroPalabras(email);
}
return bRes;
}
private String[] Filtro;
public bool FiltroPalabras(string email)
{
String sPalabras = ConfigurationManager.AppSettings[“ADRIANFiltro”];
this.Filtro = sPalabras.Split(new Char[] { ‘|’ });
foreach (string sPalabra in this.Filtro)
{
if (email.Contains(sPalabra)) return false;
}
return true;
}

Bueno hasta aca todo muy lindo pero, una de las pautas que tenia era que este filtro no tendria que dejar pasar las direcciones provenientes de nuestra misma empresa (Requisito particular), es por esto que tuve que agregar un filtro en el archivo Web.config, para cumplir con esta restricción.

 < appSettings>
       <add key=ADRIANiltro value=“algonzalez.com.ar|adrgon.com.ar/>
</appSettings>

Esto me sirvio para salir del paso, como esas soluciones provisorias para siempre, lo bueno es que esta funcionando y hasta el momento no me genero reclamos.