Este web agrupa información de distintas fuentes relacionadas con Almería de alguna forma. Las noticias se extraen automáticamente utilizando los feeds de cada blog y se organizan por fechas. Al tratarse de un proceso automático, el autor de esta página no se hace responsable de los contenidos que en ella aparezcan.

Si quieres ser añadido contacta

Grupo en Facebook WIFI en Almeria Almeria People

Feeds

7437 items (0 unread) in 101 feeds

Publicidad

Compilo ergo sum - El blog de Luis Medel

 
  • Permalink for 'La disposición final segunda de la LES nos esta negando el futuro'

    La disposición final segunda de la LES nos esta negando el futuro

    Posted: 27 May 2010, 4:50pm CEST by Luis Medel

    Hoy se ha prolongado el plazo para que los grupos parlamentarios puedan aportar sus enmiendas a Ley de Economía sostenible y, con ella, la Disposición Final Segunda (anteriormente Disposición Final Primera) que ataca los derechos fundamentales en Internet en favor de lobbies industriales que no quieren reconvertirse. La misma Disposición cuya retirada cientos de miles de ciudadanos y ciudadanas han pedido de todas las formas.

    Queremos aprovechar esta ocasión para recordar a los diputados que la ciudadanía quiere que se desactive una ley que no ampara los derechos mínimos:

    No se puede concebir una ley que afectan intereses particulares y no generales donde el juez no pueda entrar en el fondo del asunto, ofreciendo todas las garantías legales a los ciudadanos y emprendedores que están operando en Internet. Cerrar el acceso a un sitio Web puede devastar la economía de un pequeño y mediano emprendedor. Los ciudadanos no debemos asumir la reconversión de las Majors.
    No se deben mezclar asuntos del orden de la competencia desleal, como puede ser lucrarse del trabajo de otro sin que esto repercuta sobre este último, con la libertad de enlazar, citar y compartir, que son la esencia misma de Internet, una herramienta crucial para el futuro.
    Es inadmisible que se legisle en favor de un sector económico atrasado en su reconversión a expensas de los emprendedores que están ya implementando las oportunidades de la era digital. El ministerio de Cultura no está a la altura del alcance del problema. Ha invertido un tercio de sus recursos en Industrias Culturales y ahora necesita una Comisión nada imparcial para rentabilizar estos recursos, distorsionando el desarrollo normal de la economía cultural. Antes el ladrillo, ahora la copia. No reproduzcamos una burbuja de los contenidos de entretenimiento.
    El respeto y la comprensión de las opciones que ofrece Internet son la salida de la crisis.

    Firmado: Red SOStenible. La Red SOStenible somos todos. Si quieres adherirte a este texto, cópialo, bloguéalo, difúndelo.

  • Permalink for 'It will soon be possible, for instance, …'

    It will soon be possible, for instance, …

    Posted: 10 May 2010, 10:37pm CEST by Luis Medel

    It will soon be possible, for instance, for a business man in New York To dictate instructions and have them appear instantly in type in London or elsewhere. He will be able to call up from his desk and talk with any telephone subscriber in the world. It will only be necessary to carry an inexpensive instrument not bigger than a watch, which will enable its bearer to hear anywhere on sea or land for distances of thousands of miles. One may listen or transmit speech or song to the uttermost parts of the world.

    Tesla en… ¡¡¡1909!!! (enlace)

  • Permalink for 'Dan, the man'

    Dan, the man

    Posted: 27 April 2010, 8:33pm CEST by Luis Medel

  • Permalink for 'Un punto de vista interesante sobre todo…'

    Un punto de vista interesante sobre todo…

    Posted: 12 April 2010, 5:37pm CEST by Luis Medel

    Un punto de vista interesante sobre todo el lío montado entre Apple y Adobe.

    http://innerdaemon.wordpress.com/2010/04/10/sorry-adobe-you-screwed-yourself/

  • Permalink for 'La mayoría del software actual se parece…'

    La mayoría del software actual se parece…

    Posted: 12 April 2010, 12:34pm CEST by Luis Medel

    La mayoría del software actual se parece mucho a una pirámide egipcia, con millones de ladrillos apilados uno sobre otro sin integridad estructural, simplemente construída a base de fuerza bruta y miles de esclavos.

    Alan Kay

  • Permalink for 'En la práctica de cada forma de vida y d…'

    En la práctica de cada forma de vida y d…

    Posted: 29 March 2010, 11:50pm CEST by Luis Medel

    En la práctica de cada forma de vida y de cualquier trabajo, existe un estado de mente del que se dice que está desviado. Aunque os esforcéis diligentemente en vuestro propio camino día tras día, si vuestro corazón no está de acuerdo con él, aunque penséis que estáis en el buen camino, desde el punto de vista de la justicia y de la verdad, no es un auténtico camino. Si no seguís un auténtico camino hasta el final, una pequeña maldad al principio se convierte en una gran perversión. Reflexionad sobre esto.

    Miyamoto Musashi (El libro de los cinco anillos)

  • Permalink for 'There’s a really simple tip almost every…'

    There’s a really simple tip almost every…

    Posted: 22 March 2010, 7:30pm CET by Luis Medel

    There’s a really simple tip almost everybody can use to increase productivity tremendously. Not only is the tip free, it might even make you a bit of money. *And* it’ll make you smarter. It’s really easy, there’s only one step involved: Sell your TVs

    Lukas Mathis

  • Permalink for 'I learned long ago, never to wrestle wit…'

    I learned long ago, never to wrestle wit…

    Posted: 19 March 2010, 8:38pm CET by Luis Medel

    I learned long ago, never to wrestle with a pig. You get dirty, and besides, the pig likes it.

    George Bernard Shaw

  • Permalink for 'Zona de confort'

    Zona de confort

    Posted: 1 March 2010, 11:11am CET by Luis Medel

    Según la definición de Wikpiedia

    The comfort zone is a behavioural state within which a person operates in an anxiety-neutral condition, using a limited set of behaviours to deliver a steady level of performance, usually without a sense of risk.

    ¿Cuántos de nosotros nos encontramos en una zona de confort?

  • Permalink for 'The work you do while you procrastinate …'

    The work you do while you procrastinate …

    Posted: 19 February 2010, 8:18am CET by Luis Medel

    The work you do while you procrastinate is probably the work you should be doing the rest of your life

    @jessicahische

  • Permalink for 'Entrepreneur++'

    Entrepreneur++

    Posted: 11 February 2010, 1:53am CET by Luis Medel

    Se apartó del escritorio reclinándose sobre la silla para estirar un poco la espalda. Un pequeño crujido le indicó que debía tomarse unos minutos de descanso.

    La ventana estaba abierta y aprovechó para contemplar durante un momento el deambular bullicioso de la gente. Sin saber muy bien por qué, le vino a la cabeza el mito del suicidio colectivo de los lemmings. Bien pensado, quizás la mayoría de las personas fuesen también como esos ratoncillos, al fin y al cabo: seres grises, sin iniciativa, viviendo una vida impuesta por otros, con la cabeza totalmente vacía y acercándose cada día más, sin saberlo, hasta un precipicio sin retorno.

    Por suerte en el otro lado de la balanza estaban las personas como él: activos, emprendedores, innovadores, dueños de su destino. Los gigantes sobre cuyos hombros se subirían las generaciones futuras. Generadores de progreso ¡De PROGRESO! Con mayúsculas.

    Mientras pensaba esto, dirigió la mirada un momento al ordenador y comprobó los porcentajes en la pantalla. Perfecto, se dijo, al ver que todo superaba el 98%.

    Seguía dándole vueltas a la idea que había tenido hacía unos días y no pudo evitar sentir un pequeño cosquilleo nervioso en el estómago al pensar que la vida le cambiaría.

    ¡¡Bien!! ¡¡un 99%!!

    Abajo, en la calle, completamente ajenos a lo que acontecía, los lemmings seguían con su suicidio en masa.

    Lleno de optimismo, volvió al ordenador para terminar lo que tenía entre manos cuanto antes.

    El dinero debería empezar a llegar pronto, susurró cuando hubo terminado de configurar AdSense para el dominio de 6 euros que acababa de comprar. Respiró hondo y se dispuso a dar los últimos pasos. Comenzó a escribir.

    Bienvenidos a mi blog sobre emprendimiento, productividad y personal branding

    Comprobó de nuevo los porcentajes con impaciencia para descubrir que ya se había descargado una temporada completa de su serie de TV favorita ¡Esta noche tocaba maratón!

    La bandeja de entrada avisó con un zumbido. “Lolita6667 is now following you on Twitter!”, decía el nuevo mensaje. Otro lector potencial más. Sí…se acercaban buenos tiempos.

    Una pelusa entró por la ventana.

  • Permalink for 'Personal computer revolution was about l…'

    Personal computer revolution was about l…

    Posted: 11 February 2010, 12:52am CET by Luis Medel

    Personal computer revolution was about liberating us from evil mainframes-cloud computing is a mainframe in the sky & big brother everywhere

    beckychr007 ( [twitter.com] )

  • Permalink for 'Ya tenemos nuestro propio “Internet es una serie de tuberías…”'

    Ya tenemos nuestro propio “Internet es una serie de tuberías…”

    Posted: 8 February 2010, 5:31pm CET by Luis Medel

    De vez en cuando aparece algún analfabeto con un cargo de poder que quiere hacer dinero del aire.

    [www.eitb.com]

    Unas declaraciones dignas del país del ¡que inventen ellos! (que ya cobraremos nosotros como si fuese nuestro)

  • Permalink for 'http://www.onlinecourses.org/2009/10/28/…'

    http://www.onlinecourses.org/2009/10/28/…

    Posted: 8 February 2010, 12:32pm CET by Luis Medel
    ">[httpwww-onlinecourses-org20091028%2F">] [httpwww-onlinecourses-org20091028%2F"] />

    [www.onlinecourses.org]

  • Permalink for 'Soy capaz de reconocer los aspectos posi…'

    Soy capaz de reconocer los aspectos posi…

    Posted: 8 February 2010, 1:36am CET by Luis Medel

    Soy capaz de reconocer los aspectos positivos de la influencia de las religiones a lo largo de la historia. Por ejemplo, les debemos la creación de calendarios racionales que tan útiles han sido, aunque sinceramente, soy incapaz de recordar alguno más.

    Issac Asimov

  • Permalink for '40 aniversario de la misión del Apolo 11'

    40 aniversario de la misión del Apolo 11

    Posted: 20 July 2009, 12:01am CEST by Luis Medel

    Tripulación del Apolo 11

    Tal día como hoy, un 20 de Julio de hace 40 años, a las 2.56 UTC (21 de Julio en horario internacional) Neil Armstrong, comandante de la misión Apolo 11, pisó la superficie lunar. Fueron los primeros pasos del hombre sobre la Luna.

    El evento, que fue emitido de manera global, permitió que personas de todo el mundo pudiesen contemplar cómo Neil, tras descender del módulo lunar Eagle y poner el primer pie en suelo lunar, dijese las ya de sobra conocidas palabras “Eso es un pequeño paso para un hombre, pero un gran salto para la humanidad”.

    Seis horas y media después, se le unió Edwin E. Aldrin que definió el espectáculo que tenía frente a sus ojos como una “magnífica desolación”.

    Durante las horas que pasaron en suelo lunar, tuvieron la oportunidad de recoger algo más de 21 kg de roca e instalaron diversos equipos de medición que incluían un retroreflector y un sensor sísmico.

    Además de lo anterior, se colocó de forma testimonial, una bandera norteamericana y una placa conmemorativa.

    Placa testimonial d la misión del Apolo 11

    Todo indica que volveremos a tener a alguien en la Luna muy pronto, y esta vez quizás de manera permanente. Esperemos que así sea.

    Más información en Apolo 11 (Wikipedia) y Moon World Book (NASA)

  • Permalink for 'Sanfermines 2009'

    Sanfermines 2009

    Posted: 6 July 2009, 12:01am CEST by Luis Medel

    Si nos preguntan por una fiesta en España realmente universal y emblemática, sin duda todos pensaremos automáticamente en los encierros de San Fermín.

    Cartel Sanfermines 2009

    Aunque soy algo aficionado al mundo taurino, no sigo especialmente de cerca los encierros ni la fiesta pero este año me ha llamado la atención el programa por algo que veo bastante curioso; el 9 de Julio se celebrará el día de Hemingway con motivo del  50 aniversario de la última visita del escritor a las fiestas pamplonicas.

    Ernest Hemingway. El escritor que universalizó la fiesta de los Sanfermines

    Si tenéis interés, podéis consultar el programa de los Sanfermines 2009.

  • Permalink for 'El primer cable ethernet'

    El primer cable ethernet

    Posted: 1 July 2009, 9:17am CEST by Luis Medel

    El primer cable Ethernet

    Tras una puerta normal y corriente en una simple habitación del PARC se encuentra el primer cable Ethernet del mundo. En 1973 Bob Metcalfe envió un memo interno a sus colegas de Xerox proponiendo un sistema de interconexión para estaciones de trabajo e impresoras. Los dispositivos estarían conectados por un cable coaxial que se extendería a lo largo de una LAN. Llamó al sistema “Ether Network”, o “Ethernet”. En 1976 ya había alrededor de 100 dispositivos conectados a la red. Incluso utilizaron el sistema para probar la primera impresora láser que estaba siendo desarrollada en otras instalaciones de Xerox. Metcalfe y David Boggs publicaron sus notas en el “Association for Computing Machinery”. El resto es historia.

    Éste es el esquema que Metcalfe envió en el memo interno.

    PARC 1973 - Esquema Ethernet

    Vía Boing Boing.

  • Permalink for 'Twitter en 1935'

    Twitter en 1935

    Posted: 23 June 2009, 8:45am CEST by Luis Medel

    Twitter en 1935

    Mensajero robot muestra notas persona a persona en público.

    Para ayudar a las personas a concretar o cancelar citas o informar a sus amigos de su paradero, se ha presentado un “robot mensajero” en Londres.

    Conocido como el “notificador”, la nueva máquina se ha instalado en calles, tiendas, estaciones de tren y otros sitios públicos, donde cualquiera puede dejar mensajes a sus amigos.

    El usuario se sube a una pequeña plataforma frente a la máquina, escribe un pequeño mensaje en una tira de papel e introduce una moneda en la ranura. La nota se sitúa tras un panel de cristal donde permanece en público al menos dos horas, de forma que la persona a la que iba dirigida tenga suficiente tiempo para leer la nota en el lugar acordado. La máquina es similaren apariencia a una máquina expendedora de caramelos.

    Vía Modern Mechanix

  • Permalink for 'Primer día de verano 2009'

    Primer día de verano 2009

    Posted: 21 June 2009, 10:33am CEST by Luis Medel

    Primer da de verano 2009

    Esta mañana, al hacer la primera búsqueda del día, me he encontrado con este simpático logo en Google. La verdad es que no había caído de que hoy domingo es el primer día de verano de 2009 y, además, mi santo.

    Habrá que ir preparándose para un día de celebración )

  • Permalink for 'Mi lugar de trabajo (2ª parte)'

    Mi lugar de trabajo (2ª parte)

    Posted: 13 June 2009, 12:00am CEST by Luis Medel

    Hace un tiempo publiqué un set de Flickr con algunas fotos sobre mi lugar de trabajo. Hoy he caído en que no había colgado ninguna foto con la nueva configuración

    No es que sea gran cosa, pero ahí va…

    Por cierto, el Mighty Mouse lo voy a cambiar por mi viejo trackball…

  • Permalink for 'Pues sí profesor, fue todo un error ¿verdad?'

    Pues sí profesor, fue todo un error ¿verdad?

    Posted: 11 June 2009, 8:45pm CEST by Luis Medel

    I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design -)

    Profesor Andy Tanenbaum dirigiéndose a Linus Torvalds durante un típico flamewar “kernel monolítico vs kernel modular”

  • Permalink for 'Expresiones regulares. Curso de guerrilla'

    Expresiones regulares. Curso de guerrilla

    Posted: 10 June 2009, 1:00pm CEST by Luis Medel

    Si has trabajado alguna vez desde la línea de comandos seguro que has tenido la necesidad de manipular un grupo de ficheros cuyo nombre cumpliese una determinada condición (*.txt, balance_200?.xls, …), ¿cierto? Entonces ya sabrás lo que son los comodines y lo sencillo que es utilizarlos.

    Pues bien, cuando necesitamos hacer una búsqueda sobre un texto (en nuestro caso, el fuente de un programa) estamos acostumbrados normalmente a introducir el valor concreto que queremos localizar.

    Imaginemos que tenemos varias funciones que se llaman de manera similar (concatenarFechas(), concatenarCadenas(), concatenarListas()…) Si queremos buscar dónde aparece alguna de estas funciones no tenemos más que buscar de manera literal el texto correspondiente a su nombre. Por ejemplo, “concatenarListas”. Pero, ¿qué ocurre si queremos buscar las apariciones de todas las funciones que se llamen de manera similar a la vez? ¿tenemos algo parecido a los comodines para buscar texto? Efectivamente, sigue leyendo )

    Una expresión regular es, valga la redundancia, una expresión que define un patrón de búsqueda sobre un texto. En el ejemplo anterior, la búsqueda literal de la función concatenarListas() equivaldría a la expresión regular /concatenarListas/. Por otro lado, la búsqueda de todas las funciones que se llamen de manera similar podría llevarse a cabo con la expresión /concatenar[A-Z][a-zA-Z0-9]+/. De momento no te preocupes por entenderlo porque vamos a empezar desde el principio )

    Literales

    Como hemos comentado antes, una expresión regular puede ser cualquier literal. Así, ante el texto (olvidemos los acentos para simplificar los ejemplos)…

    mi mama me ama, mi mama me mima

    …la expresión /m/ (el literal “m”) nos devolvería cada una de las coincidencias con “m” del texto (11 en total). Si utilizamos la expresión /mama/ obtendremos dos resultados (las dos apariciones de la palabra “mama”). Y si utilizamos la expresión /ama/, ¿cuántas coincidencias obtendremos? ¿Una? No. Tres, ya que la palabra “mama” también coincide con el patrón /ama/.

    Pero las expresiones regulares servirían de poco si su utilidad terminase en la búsqueda de simples literales. ¿Seguimos?

    El comodín

    El carácter “.” es un carácter comodín que podría leerse como “cualquier carácter”. El patrón /m.ma/ encontraría cualquier resultado de 4 caracteres que comenzase por “m” y terminase por “ma”, sin importar cuál fuese el segundo carácter (letra, número, símbolo, espacio en blanco…)

    Si buscamos una equivalencia con los comodines que solemos usar en la línea de comandos, equivaldría al comodín “?”. Es decir, cualquier carácter, pero sólo uno.

    Conjuntos

    Si en una posición concreta queremos buscar más de un carácter, podemos especificar un conjunto de caracteres válidos. Para ello, no tenemos más que indicar los caracteres deseados entre corchetes.

    Por ejemplo, el patrón /m[ai]ma/ obtendría resultados tanto con la palabra “mama” como con la palabra “mima”. El orden en el que se defina el conjunto no tiene importancia.

    También podemos especificar rangos de caracteres que evitarán que tengamos que escribir todos y cada uno de los caracteres que queramos buscar. Así, si queremos aceptar cualquier letra minúscula del abecedario podemos usar el rango [a-z], si lo que queremos es aceptar las mayúsculas deberíamos usar el rango [A-Z] y si queremos aceptar cualquier carácter numérico el rango [0-9].

    Por supuesto, como es de esperar, los rangos se pueden combinar entre sí. Así, el patrón /[a-z0-9]/ representa un carácter (recuerda que el conjunto representa la búsqueda de un sólo carácter) que puede ser tanto una letra minúscula como un carácter numérico. De manera similar, el patrón /[a-fA-F0-9]/ localizaría un carácter hexadecimal (cualquier carácter en los rangos 0..9 y A..F).

    Ten en cuenta que tenemos la libertad al establecer los límites de los rangos. Si sólo necesitamos capturar las 5 primeras letras del abecedario, podemos indicarlo con el conjunto [a-e]. De manera análoga podemos definir cualquier rango numérico.

    Si lo que deseamos es negar el conjunto, esto es, realizar una búsqueda de caracteres que no estén en el conjunto especificado, debemos añadir al principio del mismo el carácter “^”. El patrón /m[^i]na/ devolvería resultados con “mona”, “mena”, “mana”…pero no devolvería “mina”, ya que hemos excluido ese carácter de manera explícita.

    Atajos -que no “hatajos” )

    Dado que incluso los patrones de tamaño medio pueden llegar a ser bastante complejos de interpretar visualmente, existen algunos atajos para los rangos más comunes. Por ejemplo, la expresión \d encuentra cualquier dígito (igual que el rango [0-9]) y \w encuentra cualquier carácter alfanumérico, incluido el guión bajo (igual que el rango [A-Za-z0-9_])

    A continuación dejo una pequeña lista con algunos atajos que se puedes utilizar.

    \d – Captura cualquier dígito. Equivale a [0-9]

    \D – Captura cualquier carácter que no sea un dígito. Equivale a [^0-9]

    \s – Captura cualquier carácter que sea un espacio en blanco. Equivale a [ \t\n\r]

    \S – Captura cualquier carácter que no sea espacio en blanco . Equivale a [^ \t\n\r]

    \w – Captura cualquier carácter alfanumérico. Equivale a [a-zA-Z0-9_]

    \W – Captura cualquier carácter no alfanumérico. Equivale a [^a-zA-Z0-9_]

    Caracteres especiales

    Como habrás podido comprobar, existe un conjunto de caracteres que tiene significado especial en la sintaxis de las expresiones regulares ¿cómo hacemos entonces para “capturar” uno de esos caracteres en una expresión regular? Sencillo. Se deben escapar anteponiéndoles una barra invertida “\”.

    Esos caracteres son los siguientes:

    ^$|=#!<>-.,*?+[](){}\

    Su significado lo descubrirás a lo largo de las secciones siguientes.

    Repetición y cuantificadores

    Hasta ahora hemos visto expresiones muy sencillas y con una longitud determinada. Hemos visto antes un patrón que localizaba un sólo carácter hexadecimal (/[a-fA-F0-9]/). Sin embargo, ¿cómo hacemos para localizar números hexadecimales completos con múltiples caracteres?

    La repetición de caracteres se expresa añadiendo tras el carácter que se desea repetir, alguno de los caracteres modificadores “*”, “+” y “?”.

    El más intuitivo de los tres es “*” que se leería como “ninguna o varias veces”. El patrón /ab*c/ encontraría “ac”, “abc”, “abbc”, “abbbbb … bbbbbc”, etc.

    Por otro lado, tenemos el carácter “+” que se leería como “al menos una vez”. El patrón /ab+c/ encontraría “abc”, “abbc”, “abbbbb … bbbbbc”, etc. pero *nunca* encontraría “ac”.

    Por último tenemos el carácter “?” se leería como “una o ninguna”. El patrón /ab?c/ sólo encontraría “ac” y “abc”.

    Como se puede apreciar, el modificador sólo afecta al carácter (o conjunto de ellos) que tiene inmediatamente a su izquierda.

    Con esto que acabamos de aprender, ya sí estamos en condiciones de escribir un buen patrón para números hexadecimales /[a-fA-F0-9]+/. Si queremos aceptar números hexadecimales al estilo de C (precedidos de “0x”) podemos usar el patrón /0x[a-fA-F0-9]+/

    Hay otras ocasiones en las que no interesa que la repetición sea infinita (como ocurre con “*” y “+”) y desearemos especificar un número máximo (o mínimo) de repeticiones. Para eso tenemos los modificadores “{num}” y “{min,máx}”. Al igual que los anteriores modificadores, se debe indicar a la derecha del carácter (o conjunto) que deseamos repetir.

    Algunos ejemplos

    /0x[a-fA-F0-9]{4}/ encuentra números con 4 cifras hexadecimales.

    /0x[a-fA-F0-9]{4,}/ encuentra números con al menos 4 cifras hexadecimales.

    /0x[a-fA-F0-9]{4,8}/ encuentra números de entre 4 y 8 cifras hexadecimales.

    Fíjate que “{0,}” equivale a “*” y que “{1,}” equivale a “+”.

    Agrupación

    Las expresiones de repetición que acabamos de ver, como ya he dicho, operan sobre el carácter situado inmediatamente a la izquierda. Entonces, ¿qué hacer si queremos que la repetición o cuantificación afecte a un grupo de caracteres? Para eso utilizamos la agrupación con paréntesis. Así, si queremos encontrar todas las coincidencias del literal “abcd” repetido 2 o más veces, podríamos usar la siguiente expresión /(abcd){2,}/. Con esto, encontraríamos “abcdabcd”, “abcdabcdabcd”, etc. pero no “abcd”.

    Capturas al inicio y al fin de la línea

    Todas las expresiones regulares que he escrito hasta el momento devolverían cualquier resultado que se encontrasen a lo largo de un texto sobre el que se lanzasen. En ciertas ocasiones resulta útil poder especificar si queremos que la captura ocurra al principio o al final del texto. Para esto disponemos de los caracteres “^” y “$”.

    El carácter “^” sólo puede ir al principio de una expresión regular e indica que lo que vaya a continuación debe ocurrir al principio del texto. O dicho de otra manera, el texto debe comenzar con la expresión que indiquemos a continuación. Se verá muy claro con un ejemplo.

    Por cierto, no hay que confundir este “^” con el operador de negación utilizado dentro de los conjuntos. Aunque se utilice el mismo carácter, su significado es completamente distinto.

    Bien, dicho lo anterior, veamos un ejemplo sencillo. La expresión /^Luis/ devolverá resultados para las cadenas “Luis” y “Luis Medel”, pero no para “Me llamo Luis”, ya que “Luis” no aparece al principio del texto.

    Por su parte, el carácter “$” sólo se puede utilizar al final de una expresión y sirve para requerir que lo que hayamos especificado justo a la izquierda debe ocurrir al final del texto (es decir, obligamos a que el texto termine con la expresión situada a la derecha del “$”)

    Así, la expresión /Luis$/ devolverá resultados para “Luis” y “Me llamo Luis”, pero no para “Luis Medel”.

    Gracias a estos dos caracteres resulta muy sencillo utilizar expresiones regulares para validar datos de entrada.

    Por ejemplo, supongamos que queremos comprobar si una expresión introducida por un usuario se trata de un número entero compuesto única y exclusivamente por caracteres válidos (nada de espacios ni de otro tipo de caracteres) podemos utilizar la expresión /^\d+$/.

    Si lo que queremos es comprobar si se trata de un número real válido, podemos usar la expresión /^\d+(\.\d+)?$/ (un número seguido opcionalmente por un punto y los decimales)

    Un ejemplo real

    Con lo que sabemos de expresiones regulares, ya estamos listos para ver un pequeño ejemplo real de las mismas ¿Cuántas veces has escrito una función de validación para direcciones de email?

    Podemos hacerlo fácilmente con una expresión regular.

    /^[a-zA-Z0-9_\-\+]+(\.[a-zA-Z0-9_\-\+]+)+@[a-zA-Z0-9_\-\+]+(\.[a-zA-Z0-9_\-\+]+)+$/

    Evidentemente, no es perfecta ¿Qué tal si intentas mejorarla?

    Y mucho más

    La sintaxis de las expresiones regulares es mucho más rica de lo que acabo de exponer pero creo que al menos han quedado claras las bases para que comiences a investigar por tu cuenta.

    Aún queda mucho por aprender: operador “|”, captura y repetición de grupos, grupos simbólicos (con nombre), captura hacia delante, captura non-greedy, etc.

    En futuros artículos intentaré profundizar más en el tema e iré introduciendo expresiones regulares más complejas.

  • Permalink for 'Migrado'

    Migrado

    Posted: 10 June 2009, 2:17am CEST by Luis Medel

    ¿Sorprendido?

    Acabo de migrar el blog a la plataforma Wordpress. Últimamente necesitaba algunas nuevas funcionalidades en mi motor de blogging pero no estaba sacando nada de tiempo para implementarlas, así que tiro por el camino fácil y, de momento, sigo con la solución “todoterreno”.

    No he podido migrar los comentarios de las entradas -en realidad no tenía más ganas de escribir SQL-. Espero que no os importe demasiado )

    Por cierto, las suscripciones por correo a los comentarios las activaré mañana. Ahora son las 2 y cuarto y tengo ganas de acostarme ya…

  • Permalink for 'Cambios en el sitio'

    Cambios en el sitio

    Posted: 19 April 2009, 9:37pm CEST

    ¡Aviso a navegantes! A lo largo de los próximos días voy a ir subiendo algunos cambios que estoy realizando sobre el motor del sitio. Así que os pediría a “los fijos” que si algo no funciona del todo bien (recibís algún correo que no proceda, observáis algún pete en una página, se me escapa información de depuración…) seais tan amables de avisarme.

    Espero que no tengais que sufrir mucho como betatesters )