Mostrando entradas con la etiqueta programacion. Mostrar todas las entradas

Mostrando entradas con la etiqueta programacion. Mostrar todas las entradas

Expresiones Regulares

Aviso: Este post fue tomado del blog de Fabian FCP y a mi parecer es información muy útil que vale la pena compartir (Espero que el autor no se moleste por esta publicación, de ser así, háganoslo saber, gracias). 

^[a-zA-Z0-9_-]{2,}@[a-zA-Z0-9_-]{2,}\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,4})?$ ¿alguna vez han visto algo como esto? Tal vez en las clases de matemáticas o calculo algebraico ya que esto parece una fórmula matemática o física, o algo así, que solo lo entendería un ingeniero de la NASA (¿porque siempre ellos son los mejores?), pero no amigos esto es una expresión regular una sección de código universal que se usa en los buscadores de palabras o simplemente en una validación de datos, pero ¿cómo que validación de datos? Si eso se puede hacer contra una Base de datos y ya!, pero la verdad amigos del conocimiento eso gasta mucho recurso de sistema y además es tedioso para el Usuario final de alguno de nuestros programas, por ejemplo datos como Correos, Teléfonos, Celulares, Direcciones entre otros muchos datos que tienen una estructura definida o estándar

por ejemplo:
• Un correo siempre tendrá un símbolo @ en la mitad del correo
• Un Teléfono sea fijo o celular siempre serán números 



Eso por mencionar algunos, esos datos se pueden validar en el lado del usuario, solo con unas pocas líneas de código en cualquier lenguaje de programación. 

La mayoría por no decir todos los lenguajes de programación soportan expresiones regulares entre ellos están: 
• JAVA 
• .Net Framework
• javaScript
• PHP
• Pyton
• Pealr
• ActionScript 3 (AS3)

Las expresiones regulares o también llamados patrones nos sirven como ya mencionamos para validar datos, pero para ello usan una estructura estándar para realizar las validaciones por ejemplo en ^[a-zA-Z0-9_-]{2,}@[a-zA-Z0-9_-]{2,}\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,4})?$ cada símbolo representa algo y sirve para algo dentro de la cadena expliquemos primero los símbolos básicos como son :
^ : representa el inicio de la cadena, eso quiere decir que el dato a validar debe empezar por el carácter o grupo de caracteres inmediatamente siguiente
$ : representa el fin de la cadena, es decir que el dato a validar debe terminar en el carácter o grupo de caracteres inmediatamente anterior 
[] : representa un grupo de meta-caracteres, es decir un rango de caracteres por ejemplo [a-z] representa que solo habrán letras en minúscula mientras que [A-Z] representaría letras en mayúscula, dentro de ellos se pueden colocar varios rangos y el los validara igual por ejemplo [a-zA-Z0-9_-] representa todas las letras ya sean mayúsculas o minúsculas y todos los números del 1 al 9 además de ellos acepta los caracteres de línea(-) y línea baja(_).
{} : representa un cuantificador de valor, es decir que el carácter inmediatamente anterior solo se repetirá sienta cantidad de veces por ejemplo A{3} quiere decir que la letra A mayúscula se repetirá 3 veces ni más ni menos, mientras A{2,} representara que la letra A se repetirá mínimo 2 veces máximo infinito, y A{2,5} representa que la letra A mayúscula se repetirá entre 2 a 5 veces 
(): representa un grupo de caracteres especifico por ejemplo (a|b|c)al quiere decir que la palabra tiene que empezar en a, b o c siendo validas aal, bal y cal ya que b y c están en el grupo de caracteres 
| : representa una decisión de OR en los grupos de caracteres. Solo se aplica en paréntesis ()
\ : representa el escape de un carácter: es decir que encuentre ese carácter en especifico, por ejemplo si queremos que nuestra expresión regular encuentre cadenas que contengan {} o [] tendríamos que colocarlas asi \{\} \[\] ya que [] y {} son usados por las expresiones regulares en los patrones creados. 
? : Es un cuantificador que dice que el carácter o grupo de caracteres inmediatamente anterior puede aparecer cero (0) o una (1) vez en la cadena 
* : es un cuantificador que dice que el carácter o grupo de caracteres inmediatamente anterior se repite de cero (0) a muchas veces 
+ : es un cuantificador que dice que el carácter o grupo de caracteres inmediatamente anterior se repite de una(1) a muchas veces 


Estos son los símbolos más importantes en la creación de expresiones regulares y los más usados por ende. 



Ya que sabemos cuál es la utilidad de cada simbolito ahora si expliquemos que hace y como lo hace nuestra expresión regular : 

^[a-zA-Z0-9_-]{2,}@[a-zA-Z0-9_-]{2,}\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,4})?$



cojamos parte por parte de la expresión y expliquémosla paso a paso : 

Esta parte indica que la cadena a validar inicia con cualquier carácter alfanumérico línea o línea baja y que mínimo deben existir 2 caracteres


Esta parte de la cadena indica que continua un carácter obligatorio en cual es el @, si ese símbolo es obligatorio esto es un correo, luego es seguido de varios caracteres alfanuméricos donde son mínimo 2 y debe continuar con un punto (.), ya que el punto también significa cualquier carácter en las expresiones regulares se le coloca el carácter de escape ( \ ). Representa en nombre del dominio donde esta el correo ya sea Hotmail Yahoo 


Representa la segunda parte del dominio ya sea .com o .es


Representa una parte opcional en los correos por ejemplo en dominios que sean como entidad.edu.co sirve para validar la ultima parte si es que existe y además indica el fin de la línea

--
@jclandero23

Un poco de Flex, AS3 y las RIA's

Hola amigas y amigos...

Antes de leer esto, les aclaro que no hablaré de la tableta de BlackBerry más de lo necesario, y además lo haré acerca de dispositivos Android, Flex, ActionScript3 (AS3) y mi experiencia en el tema. Además hago hincapié en los siguientes puntos: NO soy un experto, NO apoyo o rechazo algún entorno de desarrollo, compañía o dispositivo en específico, NO discutiré si Android, iOS o Blackberry son mejores entre sí, NO me importa si es software libre o de paga, etc... (si, eso último fue por UPIICSA Libre y demás fanáticos de Linux/Unix/etc... naa, eso último es broma! xD , saludos a todos!! )

Me encuentro escribiendo ahora para contarles un poco de mi experiencia con Flash Builder...

En el lugar donde trabajo me fue asignada la tarea de realizar una aplicación para la tableta Playbook de Blackberry, aparentemente la tarea era sencilla puesto que sé algo de HTML y Javascript, lenguajes que utilizaría con el Blackberry WebWorks SDK (para programar para tabletas y móviles usando HTML5 y JavaScript como lenguajes casi nativos con ciertas ventajas [SQL, API's nativas, Almacenamiento local, etc...])  pero a mi no funcionó, esto debido que nadie me dijo nunca que el Blackberry WebWorks SDK no es  taaan poderoso como yo lo necesitaba ¬¬

En resumen sobre ese tema diré que poco a poco me vi en la necesidad de explorar Flex/AS3/AIR y descubrí que es un lenguaje muy poderoso y con muchas opciones de desarrollo de aplicaciones web, móvil y de escritorio.

Éxisten conceptos básicos que necesitan saber para desarrollar aplicaciones con Flex y el Flash Builder:

RIA's

Las rich Internet applications, o RIA (en español "aplicaciones de Internet enriquecidas"), son aplicaciones web que tienen la mayoría de las características de las aplicaciones de escritorio tradicionales. Estas aplicaciones utilizan un navegador web estandarizado para ejecutarse y por medio de complementos o mediante una máquina virtual se agregan las características adicionales.
Las RIA surgen como una combinación de las ventajas que ofrecen las aplicaciones web y las aplicaciones tradicionales. Buscan mejorar la experiencia del usuario. (Más información...)

AIR
(Adobe Integrated Runtime) - AIR es una tecnología que permite la creación de aplicaciones de escritorio (de propósito general) a partir de tecnologías de desarrollo de páginas web, como pueden ser HTML, Ajax o Flash. Con Adobe AIR los desarrolladores pueden aprovechar sus conocimientos a la hora de crear páginas web para hacer aplicaciones multimedia para el escritorio. Es decir, a partir de un desarrollo de una aplicación web, crear una aplicación general con los mismos contenidos o utilidades del sitio web. (Más información... ó Aqui...)


FLEX
Flex es un conjunto de librerías – o framework – para desarrollo de UI ( User Interface por sus siglas en ingles). Aunque ActionScript 3.0 (AS3) es el lenguaje para programar aplicaciones usando el Flex framework, AS3 no es Flex. Si el código AS3 que se programe utiliza los componentes y métodos definidos en el Flex framework, entonces se esta usando Flex. Es decir, AS3 no es por si solo Flex.
Flex sirve para hacer Programas, NO animaciones. (Más Información... o aquí...)

ActionScript
Adobe ActionScript es el lenguaje de programación de la Plataforma Adobe Flash. Originalmente desarrollado como una forma para que los desarrolladores programen de forma más interactiva. La programación con ActionScript permite mucha más eficiencia en las aplicaciones de la plataforma Flash para construir animaciones de todo tipo, desde simples a complejas, ricas en datos e interfaces interactivas.
La versión más extendida actualmente es ActionScript 3.0, que significó una mejora en el manejo de programación orientada a objetos al ajustarse mejor al estándar ECMA-262 y es utilizada en las últimas versiones de Adobe Flash y Flex y en anteriores versiones de Flex.  (Más Información...)

MXML
MXML uno de los dos lenguajes que utiliza Flex para la creación de aplicaciones. Se trata de un lenguaje de programación jerárquico. Esto quiere decir que existe un nodo principal y de este nodo van a ir colgando nuevos nodos. A su vez, cada uno de los nodos descendientes del primero, pueden tener otros nodos descendientes.
MXML se basa en XML y su acrónimo "Macromedia eXtensible Markup Language", describe interfaces de usuario, crea modelos de datos y tiene acceso a los recursos del servidor, del tipo RIA's (Más Información... o aquí..., o aquí también!)

Pero bueno, por hoy esta será solo una pequeña explicación con información recopilada y un poco de mi cosecha. Pronto más del tema, ojalá les sirva! Saludos! =)

Telmex Hub: Curso de Java Esencial

Jóvenes, le paso a dejar la información de un curso de Java que darán en el Telmex Hub Les paso la información.

El registro y el curso en sí son gratuitos, ahí mismo te prestan una PC para trabajar (eso me dijo 'El Lic'), solo deben registrarse para poder acceder.

Fecha evento:
19 Noviembre, 2011 - 11:00 - 15:00
Es un taller dedicado a aprender Java esencial en su versión Standar Edition
TEMARIO
  1. Intro
  2. Inicio rápido en Java
  3. Conceptos esenciales de objetos
  4. Variables
  5. Comportamiento de objetos
  6. Control de flujo, operaciones y mas
  7. Aprovechamiento de librerías
  8. Planea para el futuro
  9. ¿Polimorfismo?
  10. Vida y muerte de un objeto
  11. Introducción a GUI y manejo de eventos

Se requiere conocimientos de Linux y Windows, aunque si no los tienes, aprenderás lo necesario para poder tomar el curso. 


Agradecimiento especial a crystal_fox_20 por la información!
Saludos a todos, allá nos vemos!!
--
@jclandero23

UNAM: MobileCampMX PUMA 2011


El MobileCampMX PUMA 2011 traerá a los mejores programadores mexicanos para compartir su conocimiento con la comunidad universitaria. Revisaremos temas como:
  • Programación en Android
  • Programación en Appcelerator
  • Programación en iOS
Este 18 de Noviembre de 2011, nos veremos en el auditorio Raul J. Marsal en el Anexo de la Facultad de Ingenieria, UNAM. El mapa de acceso esta aquí. Comenzaremos a las 9:30am, con las siguientes platicas:
1. Nuevas oportunidades en la economía de Apps Móviles – Mauro Parra – Negoapps – 1:00h – En esta conferencia haremos un análisis del mercado de aplicaciones móviles, asi como las distintas tecnologías relacionadas y cómo podrían impactar en su próximo empleo.
2. Introducción al Phonegap Builder – Mauro Parra – Negoapps – 1:00h – En esta conferencia platicaremos acerca de la tecnología Phonegap para la creación de apps móviles multiplataforma, asi como el uso de la herramienta de Build que creó Nitobi.
3. Introducción a programación en Titanium Appcelerator – Radamantis Torres –NegoApps – 2:00h – En esta conferencia, Radamantis mostrará diversas formas de desarrollar apps móviles basadas en Titanium Appcelerator.
4. ¿Cómo mejorar el diseño y usabilidad en mis aplicaciones? – Aurora Rodriguez –Androideity –  1:00h – Plática orientada a compartir best practices de diseño y usabilidad en aplicaciones móviles, poniendo énfasis en la plataforma Android, planetando comparativas de aplicaciones existentes en el Andoid Market que siguen estos puntos y las herramientas disponibles que pueden utilizarse para mejorar esta parte en los proyectos.
5. Monetización en aplicaciones Android – Aurora Rodriguez – Androideity – 1:00h – No es secreto que las aplicaciones gratuitas son las más descargadas en Android, por ello resulta importante plantear el escenario de los que apuestan a desarrollar aplicaciones para esta plataforma, alternativas de monetización, cómo funcionan las más populares y cómo puedo obtener ingresos con mis aplicaciones.

Dejo aquí el Registro por si se animan =)



--
Tomado de http://mobilecamp.mx/