germaNRG
lunes, 30 de noviembre de 2009
Google Chromium OS - III
Seguimos en la línea del sistemo operativo recientemente presentado por Google. Navegando por YouTube encontré este interesante vídeo cortesía de Google Chrome Channel que ellos definen como una demostración para hacernos ver la experiencia que puede tener un usuario con este nuevo sistema operativo. Para los que aún no sepan que es o no lo hayan visto funcionando es un vídeo muy recomendable para hacernos una idea general de las posibilidades que ofrece y sus principales ventajas.
jueves, 26 de noviembre de 2009
Google Chromium OS - II
Hola de nuevo!!
Hoy vengo con una forma rápida y muy fácil de probar Chromium OS en nuestros pc's por cortesía de Hexxeh. Os dejo abajo un enlace para que descarguéis el archivo .torrent para que os descarguéis el archivo que contiende la imagen con las instrucciones para instalarlo tanto en windows como en Linux. De todas formas os dejo una pequeña referencia aquí de los pasos a seguir.
Primeramente necesitaremos una memoria USB de unos 4Gb (la imagen a descargar no pesa más de 400Mb pero al descomprimirla, la imagen de Chromium OS asciende a alrededor de los 2,7Gb) Descomprimimos la imagen donde queramos y ahora hacemos lo siguiente.
En el caso de Windows:
Descargamos el programa Image Writer para windows (podemos hacerlo desde aquí). Luego lo descomprimimos y lo ejecutamos. Una vez dentro de éste seleccionamos la imagen descomprimida anteriormente "chromiumos.img" y seleccionamos también la letra de nuestra unidad USB. Hecho esto haremos click en "write" que escribira la imagen seleccionada en nuestro USB. Cuando termine, cerramos el programa y ya podemos arrancar Chromium OS desde nuestro dispositivo.
En el caso de Linux:
Extraemos la imagen "chromiumos.img" y ejecutamos el siguiente comando en el mismo directorio donde se encuentra el archivo. Cambiaremos la X del comando por lo que se corresponda con nuestro dispositivo USB. El comando es el siguiente:
$ sudo dd if=chromiumos.img of=/dev/X bs=4M
Cuando el comando termine de ejecutarse, nuestro dispositivo USB estará listo para que arranquemos desde él. =)
Bueno, un apunte más, si no tienes cuenta de Google o no quieres usar la tuya, puedes usar "facepunch" tanto para nombre de usuario como para contraseña. Repito una vez más que todo esto es cortesía de Hexxeh. Disfruten del sistema operativo y ya veremos si somos de los satisfechos con él o de los decepcionados.
chromiumos-211109.torrent
germaNRG
lunes, 23 de noviembre de 2009
Google Chromium OS - I
Bueno, hoy vamos a hablar del jefazo Google. Después de muchas alegrías a lo largo de estos años (para ellos y para nosotros) como han podido ser:
- El propio www.google.com
- La revolución del correo web con gMail
- El servicio Google Maps
- Google Talk
- Y un largo etcétera...
Después de todo eso y no conformes con ello, siguen intentando innovar en todo lo que pueden. Ultimamente una de las últimas sorpresas gratas que hemos recibido de su parte ha sido Android, su sistema operativo para móviles. Pero los dos últimos lanzamientos (esperadísimos) de Google no han dejado a nadie indiferente.
Primero Google Wave. Prometía (y promete) el fin de lo que conocemos como web-mail, chat, mensajería instantánea, etc... Una interfaz web digna de elogiar, la verdad, un funcionamiento bastante aceptable contando con que aún estamos usando su versión Alpha y unas promesas de funcionalidad bastante amplias y variadas. Parece extraordinario si. Pero el descontento/desilusión/decepción de ALGUNOS usuarios ya se ha hecho latente en la web. Muchos, en cambio, elogian el producto. Otros dicen básicamente eso, que esperaban más, que nos han vendido como revolucionario algo que no lo es tanto, y cosas por el estilo. Yo, sinceramente, aplaudo a Google y su Google Wave. Aunque no tenía muchas expectativas creadas alrededor de éste y así la decepción es mucho menos probable, creo que es un proyecto bastante innovador y sobre todo útil. Bajo mi punto de vista, debemos darle tiempo al tiempo, y ya se verá si cumple con las expectativas o no. Creo que aún es pronto para hablar de decepciones pero claro, cada uno sabrá lo que dice y porqué lo dice.
Ahora vamos con el último lanzamiento, quizás el más esperado de todos. Chromium OS. "¿Google? ¿Un sistema operativo? ¡Este se carga al mocosoft a la manzana y al pingüino de un plumazo!". Nada más lejos de la realidad. Como bien dejan dicho en la web de Error500, quién esperara eso, no está de suerte ya que en Google se ha apostado por un sistema operativo con vistas de futuro. Las palabras de algunos directivos de la empresa han sido éstas: "Es nuestro intento de replantear lo que los Sistemas Operativos deberían ser", "Estamos diseñando un Sistema Operativo fundamentalmente simple y seguro, pero que a su vez sea rápido y ligero para que solamente tarde en arrancar unos pocos segundos".
En líneas generales, Chromium OS consiste en un Sistema Operativo basado en la web. Se podrán descargar archivos, realizar documentos ofimáticos, escuchar música, ver vídeos, utilizar el correo y, evidentemente, navegar por la red. No permitirá la ejecución de otro software y funcionará sobre un hardware seleccionado. Eso sí, arrancar arranca que da gusto! Ya digo que, con vistas al futuro y al usuario común, es una opción bastante a tener en cuenta debido a su simplicidad y sobre todo viendo el nivel de usabilidad que está alcanzando la web de un tiempo a esta parte. Sobre esto también he leído lamentos, sollozos, decepciones y elogios varios.
En resumen, Google, ya sea con sistemas operativos diferentes, con aplicaciones web unificadoras de otras aplicaciones web o con cualquier cosa que se le ocurra, puede decepcionar o puede agradar, pero no deja indiferente a nadie. Veremos como evolucionan las cosas mientras tanto =)
Chromium OS
germaNRG
miércoles, 18 de noviembre de 2009
PyInstaller 1.3
Estoy trabajando ultimamente en proyectos multiplataforma en python y me picó la curiosidad de ver como funcionaban los empaquetadores más conocidos como por ejemplo py2exe o PyInstaller. He leído unos cuantos posts en varios lugares y pude constatar que, a pesar de que py2exe parece más extendido y más conocido, muchos acaban decantándose por PyInstaller ya que, según cuentan los usuarios, da menos problemas en determinados momentos.
Yo finalmente decidí probar ambos (sólo los he probado bajo Windows) ya que lo que más me movía era la simple curiosidad. Después de probar cada uno de ellos con un simple y llano "HolaMundo.py" debo decir que me quedo con PyInstaller por dos cosas. La primera, por su facilidad de uso e instalación. La segunda, porque las opciones que pude ver en un vistazo rápido superan en facilidad y funcionalidad las de py2exe (resaltando lo de "vistazo rápido").
A raíz de esto he decidido crear un ejecutable de el primer programa que posteé en el blog, gDiscover.py, en su versión para Windows. Así, además de portar dicho programa, explico como lo hice y todos podréis hacer vuestros propios ejecutables rapidamente.
Primero descargamos PyInstaller para windows desde su AQUÍ
Como ya he dicho, su instalación es bastante sencilla. Descomprimimos la carpeta pyinstaller-1.3 del archivo comprimido en nuestro directorio de python que en mi caso es C:\Python26\ . Hecho esto abrimos la línea de comandos y nos dirigimos a la carpeta C:\Python26\pyinstaller-1.3 y desde ahí ejecutamos:
$ Configure.py
Et Voilà! Ya podemos empezar a usarlo. Para crear nuestro ejecutable basta con dos órdenes sencillas desde la carpeta en la que nos encontramos (podéis poner la ruta que queráis. No hace falta cambiar el programa de sitio):
$ Makespec.py C:\Projects\gDiscoverWin.py
Esta orden se encarga de analizar nuestro archivo .py y sus dependencias y crea una carpeta para nuestro programa dentro de la carpeta pyinstaller-1,3. Además crea un archivo con el mismo nombre que el programa pero con la extensión .spec dentro de esta nueva carpeta que servirá a la siguiente orden para la creación de nuestro ejecutable.
Lo que debemos hacer a continuación es llamar a Build.py con la ruta que nos devolvió la ejecución de Makespec.py de esta forma:
$ Build.py C:\Python26\pyinstaller-1.3\gDiscoverWin\gDiscoverWin.spec
Hecho esto, en C:\Python26\pyinstaller-1.3\gDiscoverWin\ se nos creará una carpeta BuildgDiscoverWin y otra distgDiscoverWin. La primera simplemente es utilizada por el programa y no nos será de utilidad. En cambio, dentro de distgDiscoverWin estará nuestro archivo .exe con todas las dependencias necesarias para su ejecución. Solo tenemos que hacer por ejemplo un archivo .rar con todo el interior de esta carpeta y podremos ejecutar nuestro programa sin necesidad de que en el pc donde lo hagamos tenga instalado nada más que un windows XP.
Aquí os dejo la prueba de ello. =)
gDiscoverWin.rar
germanNRG'09
Ruby On Rails
Siguiendo la línea del post anterior, vamos a hablar hoy de Ruby on Rail y de como echarlo a andar de un modo fácil y rápido bajo Ubuntu 9.10.
Como ya vimos, habrá dos posibilidades de instalación para Ruby on Rails ya que recuerdo que Debian tiene sus propias políticas respecto a RubyGems. Teníamos ya instalado el comando "gem" para poder utilizarlo a nuestro antojo así que podremos instalarlo mediante este comando ejecutando en la consola lo siguiente:
$ sudo gem install rails --include-dependecies
Pero si seguimos utilizando los paquetes que Ubuntu pone a nuestra disposición a través de los repositorios como hemos hecho para instalar tanto Ruby como RubyGems. Para la instalación desde los repositorios bastaría con ejecutar:
$ sudo apt-get install rails
Esto instalará en nuestro sistema muchos paquetes necesarios para el correcto funcionamiento de Ruby on Rails pero, entre todos ellos, cabe destacar el uso de las bases de datos provistas por sqlite3 en lugar de MySQL.
Una vez instalado "Rails" vamos a proceder a testear que funciona correctamente. Primero debemos crear un proyecto de Rails. Esto lo haremos de la siguiente manera:
$ rails nombreDelProyecto
Lo cual nos creará, en la ruta donde lo hayamos ejecutado, una carpeta "nombreDelProyecto" donde se encontrarán todos los datos relacionados con este nuevo proyecto. Esta carpeta tendrá la siguiente estructura:
/nombreDelProyecto
app/
controllers/
helpers/
models/
views/
config/
environments/
initializaers/
locales/
db/
doc/
api/
lib/
tasks/
log/
public/
images/
javascripts/
stylesheets/
script/
performance/
process/
test/
fixtures/
functional/
integration/
performance/
unit/
tmp/
cache/
pids/
sessions/
sockets/
vendor/
actionmailer/
actionpack/
activemodel/
activerecord/
activeresource/
activesupport/
rails/
railties/
Cada directorio cumple una función específica y aquí os adjunto una descripción breve de algunos de ellos por cortesía de Maestros del Web:
app: Aquí se almacenaran los componentes de nuestra aplicación: vistas y 'helpers', controladores y modelos.
config: Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).
public: Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.
script: Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician el servidor web (server).
Para ejecutar el servidor de pruebas que viene con Ruby, Webrick (gnome posee una guía en español bastante interesante sobre el AQUÍ) para poder hacer pruebas con nuestro nuevo proyecto habrá que llamar al archivo "server" que se encuentra en la carpeta scripts/ descrita anteriormente. Para ello bastará con introducirnos en el directorio /nombreDelProyecto y ejecutar dicho script anteponiendo el comando ruby:
$ cd nombreDelProyecto
$ ruby script/server
Ya tenemos un servidor de pruebas corriendo en nuestro sistema local. Para acceder a él y ver que nuestro proyecto a sido creado correctamente y funciona debemos acceder mediante el navegador web a la direccion local en el puerto 3000 que es donde corre el server de prueba por defecto:
http://localhost:3000
Y debería mostrarnos algo como esto:
Ya tenemos a nuestro servidor corriendo en nuestro pc correctamente. Ahora viene lo de siempre cuando se empieza, desarrollar un Hola Mundo. Primero crearemos un controlador tecleando en el directorio nombreDelProyecto este comando:
$ ruby script/generate controller test
exists app/controllers/
exists app/helpers/
create app/views/test
exists test/functional/
create app/controllers/test_controller.rb
create test/functional/test_controller_test.rb
create app/helpers/test_helper.rb
Como podemos ver esto nos a creado algunos archivos nuevos en el esqueleto de nuestra aplicación. Vamos a editar primeramente el archivo nombreDelProyecto/app/controllers/test_controller.rb sustituyendo su contenido por el siguiente método:
class TestController < ActionController::Base
def index
end
end
Ahora crearemos la vista para esta acción que acabamos de crear añadiendo un nuevo archivo en nombreDelProyecto/app/views/test/ llamado index.rhtml en el que introduciremos el texto que queramos mostrar en nuestro HolaMundo. Por ejemplo:
<h1> Un saludo de<a href="http://devnewbies.blogspot.com"> DevNewBies</a> desde Ruby On Rails!</h1>
Guardamos el archivo y ya podemos probarlo accediendo a http://localhost:3000/test/ (No olvidemos mantener a Webrick corriendo en nuestro pc).
Ya tenemos listo nuestro HolaMundo sobre RoR pero, no es lo mas ortodoxo que los usuarios tengan que acceder a tu web teniendo que añadir /test/ al final del nombre del dominio. Para paliar esto debemos editar el archivo nombreDelProyecto/config/routes.rb de la siguiente forma:
Buscamos las líneas donde pone:
# You can have the root of your site routed with map.root -- just remember to delete public/index.html.
# map.root :controller => "welcome"
La primera de ellas nos recuerda que si cambiamos la ruta servida por defecto, debemos eliminar/renombrar el archivo que se encuentra en nombreDlProyecto/public/index.html. Yo lo renombré a index.old para no perderlo por si me da por restaurarlo por cualquier motivo. Una vez eliminado/renombrado este archivo, descomentaremos la segunda línea y modificaremos la palabra "welcome" por la palabra "test" para que sea éste el directorio listado como raíz. Una vez hecho esto, ya podemos acceder nuevamente a Webrick mediante http://localhost:3000/ y nos mostrará nuestro HolaMundo. =)
Si te interesa Ruby y RubyOnRails Aquí dejo unos enlaces interesantes:
Web de RoR: http://rubyonrails.org/
RoR en español:
http://www.ruby-forum.com/forum/22
http://www.forosdelweb.com/f105/
http://sobrerailes.com/
Como ya vimos, habrá dos posibilidades de instalación para Ruby on Rails ya que recuerdo que Debian tiene sus propias políticas respecto a RubyGems. Teníamos ya instalado el comando "gem" para poder utilizarlo a nuestro antojo así que podremos instalarlo mediante este comando ejecutando en la consola lo siguiente:
$ sudo gem install rails --include-dependecies
Pero si seguimos utilizando los paquetes que Ubuntu pone a nuestra disposición a través de los repositorios como hemos hecho para instalar tanto Ruby como RubyGems. Para la instalación desde los repositorios bastaría con ejecutar:
$ sudo apt-get install rails
Esto instalará en nuestro sistema muchos paquetes necesarios para el correcto funcionamiento de Ruby on Rails pero, entre todos ellos, cabe destacar el uso de las bases de datos provistas por sqlite3 en lugar de MySQL.
Una vez instalado "Rails" vamos a proceder a testear que funciona correctamente. Primero debemos crear un proyecto de Rails. Esto lo haremos de la siguiente manera:
$ rails nombreDelProyecto
Lo cual nos creará, en la ruta donde lo hayamos ejecutado, una carpeta "nombreDelProyecto" donde se encontrarán todos los datos relacionados con este nuevo proyecto. Esta carpeta tendrá la siguiente estructura:
/nombreDelProyecto
app/
controllers/
helpers/
models/
views/
config/
environments/
initializaers/
locales/
db/
doc/
api/
lib/
tasks/
log/
public/
images/
javascripts/
stylesheets/
script/
performance/
process/
test/
fixtures/
functional/
integration/
performance/
unit/
tmp/
cache/
pids/
sessions/
sockets/
vendor/
actionmailer/
actionpack/
activemodel/
activerecord/
activeresource/
activesupport/
rails/
railties/
Cada directorio cumple una función específica y aquí os adjunto una descripción breve de algunos de ellos por cortesía de Maestros del Web:
app: Aquí se almacenaran los componentes de nuestra aplicación: vistas y 'helpers', controladores y modelos.
config: Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).
public: Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.
script: Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician el servidor web (server).
Para ejecutar el servidor de pruebas que viene con Ruby, Webrick (gnome posee una guía en español bastante interesante sobre el AQUÍ) para poder hacer pruebas con nuestro nuevo proyecto habrá que llamar al archivo "server" que se encuentra en la carpeta scripts/ descrita anteriormente. Para ello bastará con introducirnos en el directorio /nombreDelProyecto y ejecutar dicho script anteponiendo el comando ruby:
$ cd nombreDelProyecto
$ ruby script/server
Ya tenemos un servidor de pruebas corriendo en nuestro sistema local. Para acceder a él y ver que nuestro proyecto a sido creado correctamente y funciona debemos acceder mediante el navegador web a la direccion local en el puerto 3000 que es donde corre el server de prueba por defecto:
http://localhost:3000
Y debería mostrarnos algo como esto:
Ya tenemos a nuestro servidor corriendo en nuestro pc correctamente. Ahora viene lo de siempre cuando se empieza, desarrollar un Hola Mundo. Primero crearemos un controlador tecleando en el directorio nombreDelProyecto este comando:
$ ruby script/generate controller test
exists app/controllers/
exists app/helpers/
create app/views/test
exists test/functional/
create app/controllers/test_controller.rb
create test/functional/test_controller_test.rb
create app/helpers/test_helper.rb
Como podemos ver esto nos a creado algunos archivos nuevos en el esqueleto de nuestra aplicación. Vamos a editar primeramente el archivo nombreDelProyecto/app/controllers/test_controller.rb sustituyendo su contenido por el siguiente método:
class TestController < ActionController::Base
def index
end
end
Ahora crearemos la vista para esta acción que acabamos de crear añadiendo un nuevo archivo en nombreDelProyecto/app/views/test/ llamado index.rhtml en el que introduciremos el texto que queramos mostrar en nuestro HolaMundo. Por ejemplo:
<h1> Un saludo de<a href="http://devnewbies.blogspot.com"> DevNewBies</a> desde Ruby On Rails!</h1>
Guardamos el archivo y ya podemos probarlo accediendo a http://localhost:3000/test/ (No olvidemos mantener a Webrick corriendo en nuestro pc).
Ya tenemos listo nuestro HolaMundo sobre RoR pero, no es lo mas ortodoxo que los usuarios tengan que acceder a tu web teniendo que añadir /test/ al final del nombre del dominio. Para paliar esto debemos editar el archivo nombreDelProyecto/config/routes.rb de la siguiente forma:
Buscamos las líneas donde pone:
# You can have the root of your site routed with map.root -- just remember to delete public/index.html.
# map.root :controller => "welcome"
La primera de ellas nos recuerda que si cambiamos la ruta servida por defecto, debemos eliminar/renombrar el archivo que se encuentra en nombreDlProyecto/public/index.html. Yo lo renombré a index.old para no perderlo por si me da por restaurarlo por cualquier motivo. Una vez eliminado/renombrado este archivo, descomentaremos la segunda línea y modificaremos la palabra "welcome" por la palabra "test" para que sea éste el directorio listado como raíz. Una vez hecho esto, ya podemos acceder nuevamente a Webrick mediante http://localhost:3000/ y nos mostrará nuestro HolaMundo. =)
Si te interesa Ruby y RubyOnRails Aquí dejo unos enlaces interesantes:
Web de RoR: http://rubyonrails.org/
RoR en español:
http://www.ruby-forum.com/forum/22
http://www.forosdelweb.com/f105/
http://sobrerailes.com/
germaNRG'09
martes, 17 de noviembre de 2009
Ruby & RubyGems
Hoy vamos a hablar de Ruby y RubyGems. Según nos dice la Wikipedia en español: "Ruby es, un lenguaje interpretado, reflexivo y orientado a objetos. Combina una sintaxis inspirada en Python, Perl y con características de programación orientada a objetos similares a Smalltalk."
Además cabe destacar que , según su desarrolador, Ruby está está diseñado para la productividad y la diversión del desarrollador. Aunque será mejor que cada uno juzgue por si mismo. Así que, vamos a lo que nos ocupa.
Primeramente vamos a instalar el interprete de Ruby en Ubuntu 9.10. Para ello abriremos una terminal y ejecutaremos:
$ sudo apt-get install ruby
Lo cual nos instalará los paquetes ruby, libruby1.8 y ruby1.8.
Ahora hablemos un poco sobre RubyGems:
Según su propia página web un gem es un paquete de aplicación o librería creada en Ruby. Estas contienen un nombre (ejemplo: rails) y una versión (ejemplo: 2.3.0). Los Gems son administrados en tu pc mediante el uso del comando "gem" los cuales son almacenados en la librería de RubyGems. Tu puedes instalar, quitar y buscar (entre otras cosas) mediante el propio comando "gem".
RubyGems es la librería principal de ruby. Y provee:
* Un formato estándar para la distribución de programas y librerías de Ruby.
* Una herramienta de fácil uso para la administración e instalación de los paquetes de gem.
* Una utilidad de servidor para navegar en la documentación de las gems instaladas mediante el RubyGems.
Puedes encontrar más información en la documentación de RubyGems
Para la instalación de RubyGems hay que destacar algo bastante importante si lo vamos ha hacer desde un sistema basado en Debian como es nuestro caso. Según pude leer en la web de Pablo en caso de que se quiera estar actualizado con rapidez (respecto a Ruby) sin tener dependencia de terceros, la opción más adecuada para su instalación es descargar el paquete oficial de RubyGems desde AQUI luego descomprimirlo y desde la carpeta descomprimida ejecutar:
$ ruby setup.rb
Como decía, los sistemas Debian como Ubuntu nos brindan la posibilidad de instalar este paquete directamente de los repositorios si queremos tener disponible en nuestro sistema el comando "gem". En este caso ejecutaremos:
$ sudo apt-get install rubygems
Esto instalará los paquetes irb1.8 libreadline-ruby1.8 rdoc1.8 rubygems y rubygems1.8
* Una herramienta de fácil uso para la administración e instalación de los paquetes de gem.
* Una utilidad de servidor para navegar en la documentación de las gems instaladas mediante el RubyGems.
Puedes encontrar más información en la documentación de RubyGems
Para la instalación de RubyGems hay que destacar algo bastante importante si lo vamos ha hacer desde un sistema basado en Debian como es nuestro caso. Según pude leer en la web de Pablo en caso de que se quiera estar actualizado con rapidez (respecto a Ruby) sin tener dependencia de terceros, la opción más adecuada para su instalación es descargar el paquete oficial de RubyGems desde AQUI luego descomprimirlo y desde la carpeta descomprimida ejecutar:
$ ruby setup.rb
Como decía, los sistemas Debian como Ubuntu nos brindan la posibilidad de instalar este paquete directamente de los repositorios si queremos tener disponible en nuestro sistema el comando "gem". En este caso ejecutaremos:
$ sudo apt-get install rubygems
Esto instalará los paquetes irb1.8 libreadline-ruby1.8 rdoc1.8 rubygems y rubygems1.8
Yo, al empezar ahora en Ruby, aún no veo la necesidad de estar actualizado más rápido que Debian así que me parece que la segunda instalación estará más adecuada a mi sistema y cumplirá satisfactoriamente los requisitos para dar unos primeros pasos en Ruby.
Hecho esto podremos probar su funcionamiento haciendo un hola mundo interactivo mediante la consola de ruby irb. Para ello ejecutaremos lo siguiente:
$ irb
irb(main):001:0> puts "Hola Mundo!"
Hola Mundo!
=> nil
irb(main):003:0> exit()
Ruby se instaló correctamente, y funciona. =)
Si queremos probar el correcto funcionamiento del comando gems podemos hacerlo también desde la consola:
$ sudo gem list
*** LOCAL GEMS ***
actionmailer (2.3.4)
actionpack (2.3.4)
activerecord (2.3.4)
activeresource (2.3.4)
activesupport (2.3.4)
En el pŕoximo post pondré un ejemplo interesante de gráficos en Ruby y otro de como hacer andar un servidor de pruebas con RunbyOnRails facilmente. =)
$ irb
irb(main):001:0> puts "Hola Mundo!"
Hola Mundo!
=> nil
irb(main):003:0> exit()
Ruby se instaló correctamente, y funciona. =)
Si queremos probar el correcto funcionamiento del comando gems podemos hacerlo también desde la consola:
$ sudo gem list
*** LOCAL GEMS ***
actionmailer (2.3.4)
actionpack (2.3.4)
activerecord (2.3.4)
activeresource (2.3.4)
activesupport (2.3.4)
En el pŕoximo post pondré un ejemplo interesante de gráficos en Ruby y otro de como hacer andar un servidor de pruebas con RunbyOnRails facilmente. =)
germaNRG'09
viernes, 13 de noviembre de 2009
Universal Feed Parser
Hace unos días, buceando por algunos blogs, he descubierto un módulo para python 2.6.4 (aprovechando que ya lo instalamos en el post anterior =) ) llamado feedparser.
Encontré varios ejemplos de su uso en aplicaciones sencillas de consola. La mayoría explicaba un ejemplo sencillo de como actualizar tu twitter desde python con este módulo pero, como no tengo twitter, pues me propuse hacer un lector rss para blogger ( MUY cutre, pero también MUY facilmente mejorable) con el fin de explicar su funcionamiento en líneas generales.
Para instalar este módulo en ubuntu no hay mas que teclear en consola
> sudo apt-get install python-feedparser
Bajo windows podéis descarlos desde aquí
Una vez descargado no tenéis más que descomprimirlo donde más os guste y desde la línea de comandos dirigíos a la carpeta en cuestión. Una vez dentro de ella tecleáis
> setup.py install
y listo. Ya tenemos feedparser listo para ser usado desde python.
Hay poco que explicar sobre él ya que es muy sencillo de utilizar. Voy a poner aquí dos o tres ejemplos básicos para que os hagáis una pequeña idea y luego que el código hable por si mismo!
>>> import feedparser
>>> blog = feedparser.parse('http://devnewbies.blogspot.com/feeds/posts/default')
>>> blog['feed']['title']
u'Todos somos NewBies'
>>> blog.feed.link
u'http://devnewbies.blogspot.com/'
>>> blog.version
'atom10'
Sencillo a más no poder. Y no digáis que no! Aquí abajo os dejo el código para que le echéis un vistazo. Y un poco más abajo un enlace con el archivo .py y el .zip del módulo para windows. El programilla funciona tanto en windows como en Ubuntu. Espero que os sirva de algo =)
Descarga el programa para leer tus blogs de Blogger favoritos mas el módulo feedparser desde aquí:
blogger.rar
Encontré varios ejemplos de su uso en aplicaciones sencillas de consola. La mayoría explicaba un ejemplo sencillo de como actualizar tu twitter desde python con este módulo pero, como no tengo twitter, pues me propuse hacer un lector rss para blogger ( MUY cutre, pero también MUY facilmente mejorable) con el fin de explicar su funcionamiento en líneas generales.
Para instalar este módulo en ubuntu no hay mas que teclear en consola
> sudo apt-get install python-feedparser
Bajo windows podéis descarlos desde aquí
Una vez descargado no tenéis más que descomprimirlo donde más os guste y desde la línea de comandos dirigíos a la carpeta en cuestión. Una vez dentro de ella tecleáis
> setup.py install
y listo. Ya tenemos feedparser listo para ser usado desde python.
Hay poco que explicar sobre él ya que es muy sencillo de utilizar. Voy a poner aquí dos o tres ejemplos básicos para que os hagáis una pequeña idea y luego que el código hable por si mismo!
>>> import feedparser
>>> blog = feedparser.parse('http://devnewbies.blogspot.com/feeds/posts/default')
>>> blog['feed']['title']
u'Todos somos NewBies'
>>> blog.feed.link
u'http://devnewbies.blogspot.com/'
>>> blog.version
'atom10'
Sencillo a más no poder. Y no digáis que no! Aquí abajo os dejo el código para que le echéis un vistazo. Y un poco más abajo un enlace con el archivo .py y el .zip del módulo para windows. El programilla funciona tanto en windows como en Ubuntu. Espero que os sirva de algo =)
#!/usr/bin/env python
# germaNRG'09 - http://devnewbies.blogspot.com
import sys
import re
def addRss(web):
if web[:7] != "http://": web = "http://" + web
if web[-1:] != "/": web += "/"
web += "feeds/posts/default"
return web
def removeTags(html):
inside = 0
text = ''
for char in html:
if char == '<':
inside = 1
continue
elif (inside == 1 and char == '>'):
inside = 0
continue
elif inside == 1: continue
else: text += char
return text
def badChars(text):
text = re.sub(" ","\n",text)
text = re.sub("--->","\n",text)
text = re.sub("\\u2026","...",text)
return text
try:
import feedparser
except:
print "FeedParser module is required"
sys.exit()
page = raw_input("Introduzca la direccion de bloger: ")
blog = addRss(page)
rss = feedparser.parse(blog)
try:
blogTitle = rss.feed.title
blogLink = rss.feed.link
except:
print "El blog introducido no responde. Compruebe la direccion."
sys.exit()
blogPosts = len(rss['entries'])
if not blogPosts:
print "Este blog no contiene entradas."
sys.exit()
print "El blog tiene disponibles %s entradas." % blogPosts
req = raw_input("Que entrada desea leer: ")
req = int(req)
req += 1
entTitle = rss.entries[req].title
print "\n\nTitulo del blog: %s" % blogTitle
print "Entrada: %s" % entTitle
ent = rss.entries[req]
entLink = ent.link
entAuthorName = ent.author_detail.name
entAuthorMail = ent.author_detail.email
entDate = ent.updated_parsed ## Devuelve un time.struct_time
try:
entData = ent.content[0]['value']
plainText = removeTags(entData)
plainText = badChars(plainText)
noData = 0
except:
noData = 1
print "Autor del blog: %s" % entAuthorName
print "Mail del autor: %s \n\n" % entAuthorMail
try:
print "Contenido de la entrada:"
print plainText[:150]+"...\n"
print "Para verla completa dirijase a: %s" % entLink
except:
print "No se pudo previsualizar la entrada."
print "Para verla online dirijase a: %s" % entLink
Descarga el programa para leer tus blogs de Blogger favoritos mas el módulo feedparser desde aquí:
blogger.rar
germaNRG'09
viernes, 6 de noviembre de 2009
Python & Bluetooth - gDiscover.py
Vamos a ver un ejmplo muy sencillo de como interactuar con dispositivos bluetooth desde python en ubuntu 9.10. Es un ejemplo muy simple de un programa que se encarga de descubrir dispositivos bluetooth que se encuentren dentro del alcance del ordenador donde ejecutemos gDiscover. La aplicación podrá devolvernos la dirección MAC de los dispositivos bluetooth que encuentre dentro de su radio de acción, el nombre a mostrar de dichos dispositivos o ambas cosas a la vez según lo desee el usuario. Aunque quizás pueda parecer algo difícil, no lo es. Sabiendo lo mínimo sobre python podremos hacer una aplicación como esta y comprenderla. Tampoco resultara demasiado complicado ampliarla añadiendole más funciones.
Para empezar necesitaremos una distribución Ubuntu 9.10 aunque la aplicación funciona desde la versión 7.04 en adelante (no he probado en las anteriores). También necesitaremos tener instalado en el sistema el intérprete de python 2.6.4 y sus librerias estándar que, en caso de ubuntu, viene instalado por defecto. De todos modos podéis descargarlo desde su página web ---> Descargar
También vamos a necesitar instalar el paquete python-bluez. Podemos encontrarlo en los repositorios de Ubuntu como podeis ver en la imagen:
ScreenShot01.jpg
ScreenShot01.jpg
O también podemos descargarlo de la página web del proyecto PyBluez, alojado en GoogleCode ---> Descargar
Obviamente será indispensable disponer de un dispositivo bluetooth ya sea integrado en el pc o portátil, o uno usb.
Una vez aclarado esto ya estamos listos para empezar a programar. Con respecto a la sintaxis general del programa en python hay muy poco que comentar. Es sencillo y fácil de leer y comprender. No tiene nada de extravagante. En relación al bluetooth basta con importar la libreria instalada con "import bluetooth"
Para ver las funciones disponibles podemos ejecutar el interprete python y teclear lo siguiente
$ python
>>> import bluetooth
>>> list=dir(bluetooth)
Esto nos devolvera una lista con todos los metodos que podemos usar. En nuestro caso por ejemplo vamos a usar los dos siguientes:
>>> list[181]
'discover_devices'
'lookup_name'
La función discover_devices() se encargará de buscar dispositivos bluetooth activos dentro del alcance del ordenador donde ejecutamos gDiscover y nos devolverá una lista con las direcciones MAC de todos los dispositivos encontrados. Por otra parte lookup_name(MAC) recibe como argumento una cadena con una dirección MAC y devuelve una lista con el nombre asociado a esa dirección. Fácil ¿Verdad?
Ahí os dejo la aplicación terminada para que le echéis un vistazo. No dudéis en mandarnos vuestras propias versiones o extensiones del programa. Espero que os sirva de ayuda. Para cualquier duda, consulta o sugerencia poneros en contacto con nosotros.
germaNRG'09
Suscribirse a:
Entradas (Atom)