Procrastinando

Haciendo el vago de forma eficiente

Walfram|Alpha no es lo que parece

dejar un comentario »

Parece que al Walfram|Alpha le ha pasado lo que a muchos sitios web cuando se hace mucha publicidad sobre ellos: la gente acude en masa y se colapsan. Eso me ha permitido descubrir que nos tienen engañados y el bicho no es lo que parece:

¡Es HAL 9000!

¡Es HAL 9000!

Escrito por jmchuma

2009/05/22 a 13:38

Actualizaciones interesantes en Minefield

dejar un comentario »

Es bastane común el el mundo del software libre que las versiones inestables de los programas estén disponibles para que otros de desarrolladores y los usuarios impacientes puedan probarlas. Lo más común es permitir accesos para lectura a los repositorios del código para quienes se manejen compilando cosas, y liberar versiones alfas y betas para los que no (o para los menos impacientes). En el caso de Firefox se sulen liberar betas de las versiones estables, pero tabién hay disponible una versión alfa (bueno, yo diría prealfa) que se compila del la rama en desarollo del repositorio. Dicha versión prealfa es la (acertadamente) llamada Minefield. Y si, es la que uso para navegar casi siempre.

Ahoramismo Minefield está preparando el camino para Firefox 3.1 y tiene algunas sopresas agradables. Algunas de ellas son facilmente visibles para el usuario de a pie (como las nuevas entradas para borrar el historial reciente y activar el modo porno la navegación privada menú Herramientas) y otras no son tan visibles (como TraceMonkey y cosillas de HTML5).

Cambios en el menú herramientas

Borrar historial reciente

El borrado de historial reciente permite borrar el historial reciente (¡Captain Obvious to the rescue!). ¿Y quién decide qué es reciente? Pues nosotros mismos. Al seleccionar la opción nos aparece una ventana de diálogo con una lista de opciones que nos permite decidir si queremos borrar la última hora, las 2 o 4 últimas horas, el historila de todo el dia (no si es las ultimas 24 horas o el dia tal cual) o todo el historial. En esta ventana de diálogo también se nos permite seleccionar que elementos queremos borrar (historial de navegacion, cookies, cache…) El invento parace que funciona bastante bien, y me parece una buena altenativa para los que nos tiramos una hora haciendo el tonto y no queremos que nuesto historial de procrastinación se mezcle con nuesto historial de trabajo. Yo antes usaba varios perfiles para poder hacer eso. Bueno, usaba y uso.

Borrar historial reciente

Navegación privada

Ésta es una funcionalidad que ya existe en otros navegadores como Safari o Chrome, y que algunos usuarios de Firefox venían pidiendo desde hace algún tiempo. La verdad, teniendo el borrado selectivo no se para qué se necesita eso. Supongo que es por si tienes que cerrar Firefox corriendo por algún motivo y no quieres que se te abra con el historial sucio. O por si se te va lo alla y se te olvida limpiar el historial. O por si te gustan las páginas dedicadas al eje de abscisas.
Al iniciar la sesión de navegación privada Firefox salva nuestras vantanas y pestañas actuales para restaurarlas una vez acabamos con el modo privado.

iniciando modo porno

Una vez iniciado el modo privado, lo que se ve es una ventana con el siguente contenido:

Inicio de modo porno

Desde mi punto de vista, esta funcionalidad todavía está por pulir. Software prealfa con funcionalidades por pulir. ¡Habrase visto! Una de las cosas que se podrían añadir es la posibilidad de estar a la vez en los dos modos. Es decir, poder tener una ventana privada y una normal. Imposible no es ya que el navegador de Sauron Google lo permite. Lo que no se es hasta qué punto eso es posible en Chrome debido a la arquitectura que tiene.

Restaurar sesión

De esto me di cuenta por chiripa, ya que el bicho cascó. Al parecer se están currando la forma en que se restauran las sesiones tras un cierre accidental. Ahora se nos permitirá seleccionar que pestañas quremos restaurar. Esto te evita restaurar sesiones con n-mil ventanas cuando ya no neceitas ni la mitad de ellas, o evitar que aquella página con la que el navegador casca sistemáticamente y que se las ha arreglado para apalancarse en tu sesión te impida continuar con tu acitivad sin sacrificar el contenido que sí necesitas.

Restaurar sesión

Nuevo motor de JavaScript

Apare de estas cosillas que están a la vista, hay otras tantas que están algo más escondidas. Como TraceMonkey, un compilador «Just In Time» de JavaScript. Se supone que eso mejora el rendimiento de JavaScript, lo cual viene bien teniendo en cuenta el uso intesivo que hacen del lenguaje en las aplicaciones web. Lo que hacen es básicamente compilar el código y almacenarlo el vez de interpretarlo cada dos por tres. De momento no viene activado por defecto (seguro que lo cambian esta noche y yo quedo mal). Para activarlo basta con ir a about:config desde la barra de direcciones, y poner javascript.options.jit.content a true. Esto activa la compilacion JIT para el JavaScript de las webs. Yo lo he estado probando con Gmail y Google Reader pero no he notado nada, aunque tampoco se puede decir que me haya fijado mucho. Se puede hacer lo mismo para las aplicaciones XUL poniendo el valor de javascript.options.jit.chrome a true.

Video y audio

Minefield ya reconoce las etiquetas audio y video de HTML5. De momento es capaz de trabajar con el contendor Ogg y los codecs Vorbis y Theora de forma nativa. He hecho pruebas con algunas canciones que tengo en el ordenador y algunos videos y los reproduce sin problemas.

Video con controles en Firefox

Ambas etiquetas cuentas con un atributo que permite mostrar controles. En las pruebas no he conseguido activarlos para audio (supongo que todavía no estarán), pero si que aparecen para video. Los controles son sencillos (iniciar y pausar la reproducción, activar y deasctivar el volumen), pero creo que para más de uno son suficiente. También podemos acceder a ellos con el click secundario y existe un A.P.I. para JavaScript con el que se pueden hacer más cosillas. Aún faltan cosillas por incluir (loop, poster, ¿más controles?…) pero pinta bastante bien. De momento he notado que utiliza menos el procesador que los videos en Flash. Ahora solo falta que la gente se decida por unos contenedores y unos codecs comunes y se empieze a utilizar el invento en la web. También soporta cavas, aunque no se hasta que punto. Y no creo que venga al caso.

Fuentes
Mozilla Wiki
Borrador de HTML5

Escrito por jmchuma

2008/12/09 a 14:42

Escrito en FLOSS, Firefox

Etiquetado con ,

Naruto está haciendo mucho daño

dejar un comentario »

A: Se me ha jodido el disco duro del portátil y el que me han puesto es un Hitachi.
B: ¡Anda, como mi aire acondicionado!
C: Y también es un tio que utiliza técnicas ilusorias.

Escrito por jmchuma

2008/10/31 a 20:32

Escrito en Perlas

Aviso de plugin en Firefox

dejar un comentario »

Una de las cosas que me fastidia de los navegadores es que entre la barra de direcciones, la barra de marcadores, el menú y la barra de estado, tengo la sensación de que me quedo sin espacio en la pantalla. Por eso cuando me aparecen avisos que desplacen el contenido o se sobrepongan a él me entran los siete males. Eso pasa con Firefox (y quizá con algún otro, pero centrémonos). Si te falta algún plugin o la página te suelta un pop-up, la configuración por defecto hace que te aparezca una barra amarilla que te deplaza toda la página para avisarte de ello. Si, sé que es solo un poquito, pero soy bastante tiquismiquis.

En el caso de los pop-ups existe una forma fácil de configurar su comportamiento. Firefox te ofrece la opción de ocultar el aviso-desplaza-contenido amarillo para que solo aparezca un icono muy mono en la barra de estado. En el caso de los plugins la cosa es un poco más rebuscada. No existe ninguna opción visible (o al menos yo no la he encontrado) para deshabilitar los avisos. Hurgando un poco por about:config y cacharreando con todas las opciones que contienen la palabra plugin, he encontrado (lamentablemente depués de escribir a Mozilla) la opción para deshabilitarlo: solo hay que modificar plugin.default_plugin_disabled y ponerlo a false. ¿Que cómo me entero ahora de que me faltan plugins? Fácil, si te faltan un plugin lo ves en la propia página. Es más, algunos sitios te ponen un aviso algo más mono si no detectan el plugin.

Escrito por jmchuma

2008/09/25 a 10:34

Escrito en Aplicaciones, FLOSS

Etiquetado con , ,

About I.A.

dejar un comentario »

Oido en el desayuno con los nuevos compañeros de beca:
«A mi lo de la inteligencia artificial me suena a coger a una rubia y teñirla de moreno.»

Escrito por jmchuma

2008/09/17 a 18:28

Escrito en Perlas

The Organ

con un comentario

A mediados de este verano y gracias a una amiga melómana (bueno, creo que el término melónama se queda corto para ella) escuché una canción titulada «Brother» de un grupo llamado «The Organ» (¿a que soy un hacha poniendo títulos?). La canción me gustó mucho así que decidí averiguar algo más del grupo.
Se trataba (ya se han separado) de un grupo de rock indie. Al parecer solo tienen un disco («Grab that gun») y unos cuantos singles. He escuchado el disco varias veces y creo que no tiene desperdicio. ¡Me gusta más de tres canciones! No sabría decir cual es la que más me gusta. Me estoy debatiendo entre «Brother», «Love, Love, Love», «Basement Band Song», «A Sudden Death», «I am not Surprised», «No One Has Ever Looked So Dead» y «Memorize the City» (siete de las once que tiene el disco :P)
En fin, os dejo con «Brother» y «Love, Love, Love» para que catéis el material.

Escrito por jmchuma

2008/08/27 a 21:31

Escrito en Música

Etiquetado con ,

Gazpacho de calabaza

con 3 comentarios

A: ¿Quieres gazpacho?
B: ¿De qué es?
A: ¿Cómo que de qué es? ¡Es gazpacho!
B: Ya, pero puede ser de calabaza.

Escrito por jmchuma

2008/08/15 a 15:59

Escrito en Perlas

Lo último de Seagal

con 2 comentarios

Bueno, igual no es lo último pero me acabo de enterar ahora. A decir verdad este post lleva en borrador casi desde que empecé con el blog (creo). ¡Sangre y huesos rotos a cascoporro!

Escrito por jmchuma

2008/08/12 a 23:28

Escrito en Música, Varios

Métodos especiales en Python

dejar un comentario »

Una cosa que me gusta mucho de Python es que hay una serie de métodos especiales (no se si llamarlos especiales o predefinidos) que si están implementados en una clase, permiten que los objetos de esa clase operen con la sintaxis de Python o con métodos predefinidos del intérprete. Por ejemplo, si implementamos en método __str__(), este será llamado automáticamente al ejecutar str(obj). Y como este ejemplo hay muchos más.

El otro dia, durante la charla que di sobre Python saqué lo de los métodos especiales. Voiser se fijó en que existen métodos como str.__mul__ y str.__rmul__, que realizan la misma operación pero invirtiendo el orden de los operandos, y la duda que surgió fue qué objeto ejecutaba el método si ambos implementan los mismos métodos (como por ejemplo, al ejecutar 4 * "cadena" y "cadena" * 4), y ya me dejó con la dudilla. En un principio pensé en escribir a la lista del GUL, a la de Python o leerme la documentación, pero la final opté por probar y publicar mis conclusiones, así hago el ridículo públicamente :) Para saber lo que pasa he llevado a cabo el siguiente experimento:

Paso 1: crearnos una clase que no haga nada. Algo tal que así:

>>> class Nada():
...     pass
...
>>>

A continuación la instanciamos y probamos a multiplicar por un número:

>>> nozing = Nada()
>>> 4 * nozing
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for *: 'int' and 'instance'
>>> nozing * 4
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for *: 'instance' and 'int'
>>>

Como se puede ver se invierte el orden en el error, pero lo único que significa eso es que al mostrar el error pilla el tipo de los objetos de forma ordenada.

Paso 2: nos creamos una clase que implemte un solo método especial y repetimos las operaciones realizadas anteriormente:

>>> class Uno():
...     def __mul__(self, algo):
...         print "Uno *", str(algo)
...
>>> wan = Uno()
>>> wan * 4
Uno * 4
>>> 4 * wan
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for *: 'int' and 'instance'
>>>

Paso 3: nos creamos una clase con un método especial y su inverso:

>>> class Dos():
...     def __mul__(self, algo):
...         print "Dos *", str(algo)
...     def __rmul__(self, algo):
...         print str(algo), "* Dos"
...
>>> tu = Dos()
>>> tu * 4
Dos * 4
>>> 4 * tu
4 * Dos
>>>

¡No hemos cambiado la clase int, pero funciona!

Conclusión: el método que se intenta ejecutar en primer lugar es el del objeto que está más a la izquierda. Si este no soporta la operación se pasa intentar ejecutar el método inverso (por llamarlo de alguna forma) del operando de la derecha. Si este tampoco lo soporta, todo salta por los aires como en Joliwud. ¡Este lenguaje es la awesomeness! Ahora habré metido la pata hasta el fondo.

Nota: hice las pruebas directamente en el intérprete, y por ese motivo decidí poner el prompt (>>>).

Escrito por jmchuma

2008/08/02 a 01:27

Escrito en Programación

Etiquetado con

iCrapware

con 5 comentarios

iCrapware: dicese de una aplicación que no quieres para nada y viene instalada por defecto en Mac OS X. Lo peor del iCrapware es que no se sabe hasta que punto te afecta no tenerlo en las actualizaciones del sistema. Ejemplos de esto son:

  • Front Row
  • GarageBand
  • iDVD
  • iMovie
  • iPhoto
  • iTunes
  • iWeb
  • iWork
  • iTunes (es doble iCrapware)
  • iSync

En la próxima actualización ya me enteraré de si el iCrapware es necesario o no.

Escrito por jmchuma

2008/07/17 a 20:47

Escrito en Me

Etiquetado con , ,