martes, 28 de junio de 2011

Ruby para principiantes: Expresiones regulares (1º parte)

Ruby es uno de los lenguajes más populares usados en la web. En este artículo aprenderemos algunas de las expresiones regulares, además de toda la información básica que es necesario saber para conocer esta herramienta en profundidad.

Fuente original del artículo: Net Tuts +
Traducción realizada por
elWebmaster.com

Si ya estás familiarizado con las expresiones regulares, te alegrará saber que la mayoría de la sintaxis de Ruby es similar a lo que ya hemos visto en PHP y JavaScript.

Como todo en Ruby, las expresiones regulares son objetos regulares: son consideradas instancias en la clase Regexp. De todas maneras, usualmente crearás una expresión regular con una sintaxis estándar como esta:

  1. /myregex/
  2. /\(\d{3}\) \d{3}-\d{4}/

Para empezar, la manera más simple es aplicarlo a un string y ver si existe una coincidencia. Ambos strings y los objets regexp tienen un método de comparación que funciona así:

  1. "(123) 456-7890".match /\(\d{3}\) \d{3}-\d{4}/
  2. /\(\d{3}\) \d{3}-\d{4}/.match "(123) 456-7890"

Ambos ejemplos coinciden, y ahora obtendremos una instancia de MatchData de regreso. Ya que el objeto MatchData será evaluado con true, puedes utilizar el método match en sentencias condicionales, y sólo ignorar cuando obtienes un valor de retorno.

Hay otro método que puedes usar para comparar regexp con strings: es =~ . Recuerda que los operadores son métodos en Ruby. Este método devolverá nil cuando no haya coincidencia. Sin embargo, si sí la hay, devolverá la posición numérica del string donde la coincidencia comienza. Ambos strings y regexps tienen =~.

  1. "Ruby For Newbies: Regular Expressions" =~ /New/ # => 9

Las expresiones regualres son más útiles cuando nos permiten cosechar algo de información. Esto se hace usualmente envolviendo ciertas parte de la expresión regular en paréntesis. Supongamos que queremos comparar un nombre, apellido y ocupación en un string, donde el string está formateado de esta manera:

  1. str1 = "Joe Schmo, Plumber"
  2. str2 = "Stephen Harper, Prime Minister"

Para obtener los tres datos, creamos este regexp:

  1. re = /(\w*)\s(\w*),\s?([\w\s]*)/

Esto compara cualquier número de caracteres de palabra, un espacio en blanco opcional, cualquier número de caracteres de palabra, una coma, un espacio en blanco opcional, y cualquier número de caracteres o espacio en blanco.

Luego, ejecutaremos esto:

  1. match1 = str1.match re
  2. match2 = str2.match re

Eso es todo por hoy. En la segunda parte de este artículo, veremos más en detalle los objetos Matchdata y otros usos de las expresiones regulares.

¡Hasta la próxima!

lunes, 20 de junio de 2011

Instalar juegos en ubuntu con Djl

Djl, es una especie de administrador de juegos, que nos permitirá instalar juegos en Ubuntu de una forma muy fácil, actualmente cuenta con un repertorio de 121 juegos gratis

.
Para poder usarlo e instalar juegos en Linux, debes descargar la última versión, descomprimirla. Una vez que lo hayas descomprimido debes ejecutar el archivo djl.sh (ya vimos como instalar archivos .sh en Ubuntu)

Lo primero que nos saldrá será la ventana de configuración, hacemos los cambios según nuestras preferencias, en mi caso lo deje tal y como está y guardé los cambios.



A continuación nos saldrá la ventana principal del programa, donde tenemos una serie de pestañas, para instalar los juegos nos dirigimos a la pestaña Repository, ahí podemos ver la lista de juegos que podemos instalar.



Para instalar, seleccionamos el juego que nos interese y hacemos clic en el botón Install, y se iniciará la descarga inmediatamente. Una vez que se haya completado la descarga e instalación, podemos ejecutar, borrar y actualizar el juego desde Djl.

Además de ello podemos filtrar la lista de juegos por categoría y tipo de licencia, DJL también cuenta con un cliente IRC, que te permite intercambiar opiniones de los juegos con otros usuarios, incluso hasta puedes subir tus propios juegos al repositorio.

jueves, 16 de junio de 2011

Solo para ingenieros

Un tipo iba caminando por la calle cuando de repente lo para un ladrón enmascarado arma en mano y le dice:

Anda Pronto. Este es un asalto ¡Dame tu reloj!

El tipo le da su reloj (una imitación Rolex )....

El ladrón se molesta:

- Que es esto? Una imitación? Dame tu billetera!

El hombre le da su billetera de plástico imitación de Pierre Cardin con una tarjeta de transporte público y 20 pesos.

El ladrón se enoja:

- ¡Que carajos es esto!!? ... tu traje esta todo desgastado, tu celular es pirata, tu reloj que aparenta ser bueno es de imitación...estás más jodido que yo.

¿A que te dedicas?

El tipo avergonzado, contesta casi llorando: ¡Soy ingeniero!

El ladrón emocionado, quitándose la máscara le pregunta:

- ¿De verdad? ¿De que generación?

viernes, 10 de junio de 2011

Windows 8, el mayor cambio de diseño desde Windows 95

Estamos teniendo un día cargado de información sobre Windows 8, el próximo sistema operativo de Microsoft, que hace tan solo unas horas nos mostraba las primeras imágenes de su interfaz. Con esta pretende dar un salto decalidad y hacer que haya una mayor compenetración entre el hardware y el software.

Este cambio, según Microsoft es el mayor de diseño que ha sufrido el sistema operativo desde Windows 95, lo cual nos puede dar una pista del trabajoque está suponiendo el nuevo sistema operativo de las ventanas.

Nuestro objetivo con Windows 8 es hacer que la experiencia de usuario sea una extensión natural del dispositivo, desde el momento e n el que se enciende el PC hasta la interacción con las aplicaciones que conocemos y amamos. Esto representa un cambio fundamental en el diseño de Windows que no hemos intentado desde los tiempos de Windows 95, lo cual representa para nuestros socios de hardware para innovar con diseños de equipos nuevos.
Estas palabras fueron dichas por Mike Angiulo en Computex, donde se han difundido todas las informaciones que han surgido durante el día de hoy sobre el próximo sistema operativo de Microsoft.

Nueva interfaz para el sistema operativo, rediseño importante del sistema operativo… ¿y eso no supondrá que tendremos que tener un potente ordenador para poder mover el nuevo Windows 8? Pues según afirman desde la compañía no será así, ya que han trabajo en mantener los requisitos técnicos de los dispositivos en los mismos que tienen actualmente Windows 7.



Codigo Linux


Videos tu.tv

jueves, 9 de junio de 2011

AMD Bulldozer

AMD reintroducirá procesadores de ocho núcleos y con arquitectura Bulldozer para computadoras avanzadas y servidores. Este lanzamiento está pensado para competir directamente con los procesadores Extreme Edition de Intel.

Los procesadores más rápidos conocidos como Athlon FX fueron diseñados para los usuarios más entusiastas del PC y aficionados a los juegos de última generación, en los que es necesario utilizar configuraciones potentes en las que sea posible incluso el despliegue de ajustes de overclocking. Así, la primera plataforma que utilizará el título de FX será la nombrada como Scorpius, acompañada de la última serie de placas base con chipset AMD serie 9, así como de los últimos modelos de tarjetas gráficas AMD Radeon HD 6000. Dichos chip Zambezi llevarán hasta ocho núcleos nativos de procesador. Además, el núcleo Zambezi estará basado en la famosa arquitectura Bulldozer que fue desarrollada el pasado año y orientada como parte fundamental de servidores y estaciones de trabajo. Ahora se ha desvelado algún detalle más, indicando que dichos procesadores utilizarán placas base con zócalo de tipo AM3+. También añade AMD que los procesadores Zambezi contarán más adelante con un chip gráfico integrado, aunque los modelos que inicialmente sean lanzados no lo contemplaran. Tiene su parte lógica, dado que por el tipo de usuario que estará interesado en el producto, se descarta desde el primer instante el planteamiento de utilizar gráficos discretos.


miércoles, 8 de junio de 2011

Google lanza su lenguage de programacion Go

Google sigue lanzando servicios y productos sin parar. Esta vez ha presentado Go, un lenguaje de programación experimental y completamente abierto que combina la seguridad y rendimiento de C++ con la velocidad de un lenguaje dinámico como Python.

Con este lenguaje Google espera ofrecer una buena herramienta para trabajar en entornos con multiprocesadores y un modo fácil de ponerse a programar con la orientación a objetos y con las ventajas de tener, por ejemplo, el garbage collector para que no tengamos problemas de memoria. Podemos ver un ejemplo del aspecto del código de Go con el código típico del Hola Mundo:

package main

import “fmt”

func main() { fmt.Printf(“Hello, 世界\n”)
}


En la web oficial ya están disponibles tutoriales y documentación para los que se animen empiecen a probar sus proyectos en este nuevo lenguaje. La mascota de Go es una ardilla terrestre llamada Gordon (en inglés el animal es un Gopher… Go, Gopher, Gordon).

Wii U en el E3 2011

Mejoras Google Chrome 12

Con más de 160 millones de usuarios repartidos en todo el mundo, Chrome, el navegador de Google, llega con una nueva versión estable con la que mejorar el navegador en aspectos relacionados con la seguridad, la privacidad y, sobre todo, en el procesamiento de gráficos. Chrome 12.0.742.91, que es la numeración oficial de esta versión, incluye algunos de los detalles que se presentaron en el Google I/O 2011, como por ejemplo la eliminación de Google Gears, algo que engancha perfectamente con la inminente llegada de los primeros portátiles con Chrome OS, los Chromebooks.
Google Chrome 12 hace especial énfasis en la navegación segura de los usuarios, por ello, la nueva versión del navegador de Google, además de avisarnos de sitios potencialmente peligrosos (porque realicen pishing o contengan malware), los usuarios recibirán avisos si los sitios web están catalogados como sitios desde los que se descargan archivos maliciosos que no estén catalogados como malware. La idea es que el navegador pueda discernir si un archivo, o un sitio web, pueden ser susceptibles de ofrecernos “archivos dudosos” sin la necesidad de que Google o Chrome tenga esos sitios web en una “lista negra”.

Además, Chrome ofrece al usuario mayor control sobre las cookies, especialmente las que están relacionadas con Flash. Fruto de un trabajo conjunto con Adobe, Chrome 12 incluye una utilidad para controlar las trazas de Local Shared Objects que, hasta ahora, sólo podían controlarse desde la página web de Adobe.

Por otro lado, la polivalente barra de direcciones del navegador, el Omnibox, permite la ejecución de las aplicaciones de Chrome, las de la Chrome Web Store, simplemente, tecleando su nombre en la barra de direcciones (y pulsando Enter). Ahorrando el tener que abrir una pestaña nueva y tener que pulsar sobre el icono de la aplicación o, por ejemplo, en el caso de TweetDeck, tener que instalar un botón de acceso directo en el espacio de las extensiones. Los usuarios de Mac que usen Chrome tendrán una funcionalidad extra puesto que recibirán una alerta del navegador si, por error, pulsan Command-Q.

Quizás, lo más aparente del grupo de mejoras de Chrome 12 lo encontremos en las mejoras relacionadas con el procesamiento gráfico. Chrome 12 incluye soporte para aceleración gráfica para 3D CSS, es decir, que los usuarios de páginas webs o aplicaciones que incluyan efectos 3D, experimentarán mejoras en el rendimiento y visualización de éstas. De hecho, si alguien quiere probarlo con “fuego real”, Google ha puesto a disposición de los usuarios una página de pruebas, si bien sólo funciona con equipos con Mac OS X 10.6
o Windows Vista como mínimo.

Como de costumbre, Chrome 12 llega en forma de actualización automática así que los usuarios, únicamente, tendrán que reiniciar el navegador cuando vean el icono con la flecha al lado del botón de configuración del navegador. ¿Y cuándo llegará la siguiente versión de Chrome? Pues, como es habitual con los ciclos rápidos de desarrollo de Google, la siguiente versión de Chrome llegará, de manera estable, en seis semanas, si bien las versiones beta se podrán ir probando en breve.