Zootropo

Diario del mundo geek.

lunes, mayo 31, 2004

Ficheros

Llamamos datos a la representación de la información de manera adecuada para su tratamiento informatizado. Sobre estos datos se realizan operaciones para obtener beneficio a partir de ellos actividad que se conoce con el nombre de 'proceso de datos'.

Para realizar el proceso de datos estos deben estar en almacenamiento principal (en memoria) pero mientras no vayamos a procesar estos datos podemos almacenarlos en soporte secundario, que es mas barato y no es volátil como la memoria principal.

En la memoria principal los datos se organizan en el mapa de memoria. En memoria secundaria se distribuyen en ficheros.

Llamamos fichero a un conjunto organizado y nominado de informaciones estructuradas almacenadas en un soporte no volátil. Estos ficheros a su vez pueden estar organizados de forma serial, consecutiva, direccionada,... lo cual viene determinado por el tipo de soporte y por el tipo de proceso que se realizará sobre ellos.

Samurai Champloo: Some live, some die, in the name of the samurai

Anime Underground ha comenzado a subtitular Samurai Champloo, la nueva serie del director de Cowboy Bebop, Shinichiro Watanabe.

La serie tiene cierto aire a Cowboy Bebop transladando la época del futuro al periodo Edo y la música de jazz y blues a hip hop. La influencia del hip hop en la serie no se queda solo en la música, las luchas de espada parecen algunas veces coreografías de break dance y la ropa y el aspecto de los personajes tienen ciertos toques de urban underground.

Un primer episodio genial que te deja con ganas de mas, comenzando con el opening que es magnífico y nos pone sobre aviso de lo buena que va a ser la banda sonora de esta serie.

domingo, mayo 30, 2004

Mostrar la velocidad real en Nero

Por defecto Nero nos muestra como velocidad a la que grabamos la velocidad que seleccionamos antes de grabar. Esto no tiene mucho sentido, es mucho mas util decirnos a que velocidad estamos grabando de verdad.

Para ello abrimos el registro de windows (Inicio -> ejecutar, escribimos regedit) y nos dirigimos a HKEY_CURRENT_USER\ Software\ ahead\ Nero - Burning Rom\ Recorder. Una vez allí hacemos doble click sobre 'ShowSingleRecorderSpeed' y cambiamos su valor a '1'. En Nero 6.x no aparece esta clave, por lo que tendremos que crear un nuevo valor de tipo DWORD con ese nombre y valor 1.

Alias no es una serie de televisión

Una de las desventajas que tiene trabajar tanto con Windows como con Linux es que al ser tan parecidos muchos comandos (ya que en ambos casos derivan de Unix) muchas veces podemos confundir los comandos de uno con los del otro, con la consiguiente perdida de tiempo.

También tengo algunas manías adquiridas, como es el usar cd.. en Linux sin pensar que en Linux siempre hay que separar con un espacio el comando de los argumentos. cd.. es valido en la línea de comandos de Windows pero no en la de Linux.

Para cosas como estas y muchas mas sirve alias, que hace nada mas y nada menos que lo que sugiere su nombre, asignar alias o alternativas a los comandos.

Por ejemplo para resolver mi problema con cd.. basta con añadir la siguiente línea a nuestro .bashrc:

alias cd..="cd .."

lo que hará que escribir cd.. sea equivalente para Linux a escribir 'cd ..'

Alias también puede ser usado en la línea de comandos pero logicamente los cambios no serán permanentes si no se añade al .bashrc.

sábado, mayo 29, 2004

Desactivar el arranque automático de CDs en XP

En las versiones anteriores de Windows ya habíamos tenido que lidiar con la reproducción automática de CDs que consiste en ejecutar automáticamente el ejecutable indicado por el fichero autorun en la raíz del disco, si este existe.

En Windows XP la reproducción automática se da también para los CDs que no tengan definido un fichero autorun. Para ello nada mas introducir el CD se hace una prelectura comprobando el contenido del disco y según el tipo de los archivos nos mostrará unas opciones u otras.

Si la reproducción automática podía resultar un poco molesta algunas veces ésta lo es bastante mas, porque al menos yo prefiero elegir que voy a hacer y no que Windows me de opciones sobre lo que el interpreta que yo quería hacer. Es el clásico síntoma de la estupidez artificial o síndrome del Asistente de Office.

Para desactivar el autorrun abrimos el editor de directivas de grupo (Inicio -> Ejecutar, escribimos gpedit.msc) y nos dirigimos a Configuración del equipo -> Plantillas administrativas -> Sistema, hacemos doble click sobre la opción opción Desactivar Reproducción automática y seleccionamos habilitar.

RSS, descanse en paz

Hasta hace unos días el sitio tenía sindicación RSS, pero ha muerto. No ha sido de viejo por que solo ha estado unas semanas, debe haber sido por una enfermedad terminal contraida via Feedster, la página web que se encargaba de ofrecer este servicio.

Sintiéndolo mucho tendremos que quedarnos solo con Atom, que está incorporado en Blogger, al menos hasta que la gente de Blogger añada también soporte RSS, que viendo la poca afición a actualizar y añadir características bien puede ser el año que viene, o hasta que encuentre un servicio de terceros mas fiable que Feedster.

En fin, ¡RSS ha muerto! ¡Viva Atom!

viernes, mayo 28, 2004

Lo que esta por venir: Firefox 0.9

Neowin ha publicado una entrevista a Ben Gooder, el desarrollador jefe de Firefox en la que se habló sobre las nuevas características de la versión 0.9.

No hay sorpresas ni nada que no supieramos ya pero aprovecharé para listar algunas de las nuevas características para los que estén algo perdidos.

Establidad:

  • Nuevos sistemas de extensiones y temas que permitirán a los desarrolladores diseñar extensiones mas ambiciosas mientras permiten a los usuarios instalar, desinstalar y actualizar extensiones controlando que no se produzcan incompatibilidades puedan hacer inestable el navegador. Es una de las características que mas se echaban de menos y de la cual podeis ver imagenes en el blog de Ben Gooder.
  • Incontables errores corregidos y mejoras en el aspecto visual.

Facilitando la migración a Firefox:

  • El tamaño del archivo a descargar para instalar Firefox baja hasta los 4.6MB gracias al uso de 7z como algoritmo de compresión.
  • Conserva la información de tu anterior navegador (Favoritos, contraseñas, cookies, datos de formularios e historial)
  • Mejoras en la gestión de marcadores y las búsquedas.
  • Posiblidad de lanzar tu lector de correo o de noticias desde el navegador.

Acelerar el comienzo de Eclipse

Un pequeño apunte para probar cuando tenga tiempo. En el blog de Jesús M. Rodriguez describen un truco para hacer que Eclipse, posiblemente el mejor IDE para Java, tarde la mitad de tiempo en arrancar. Consiste simplemente en ejecutar la aplicación con los siguientes parámetros:

-vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M
-XX:MaxNewSize=32M -XX:NewSize=32M -Xmx160m -Xms160m

User.js: Tuneando Firefox con Zootropo

Firefox de por si es un gran navegador pero como siempre los valores por defecto no tienen por que ser los mejores. Es conveniente modificar las opciones del navegador para adaptarlo a nuestros gustos editando el fichero user.js.

User.js es un archivo que se encuentra en la carpeta de nuestro perfil de Firefox y que almacena las preferencias del usuario. Aquí teneis para descargar mi user.js con pequeños comentarios sobre el uso de cada preferencia.

Cambiando estas opciones Firefox debería ser además de mas rápido en la carga de las páginas web, mas eficaz y útil.

No están todas las que son y sus valores no tienen por que ser los mejores, son simplemente los que mas me gustan. Echadle un vistazo y cambiad las opciones según vuestros gustos y necesidades.

Como pequeño recordatorio, hay que añadir las líneas que os interesen al fichero user.js que se encuentra en la carpeta de perfil (normalmente %AppData%\ Phoenix\ Profiles\ default\ xxxxxxxx.slt\. user.js no existe por defecto, hay que crearlo)

Descargar User.js

jueves, mayo 27, 2004

Buscar texto normal con 'find as you type' en Firefox

Find as you type es una de las características que mas me gustan de Firefox. Consiste en que si escribes algún texto mientras ves una página web Firefox buscará enlaces que contengan ese texto. Podemos por ejemplo empezar a escribir "Home" si queremos ir a la página de inicio del sitio en que nos encontramos y sabemos que hay un enlace con ese texto.

Podemos hacer que esta característica busque también texto normal y no solo enlaces añadiendo una simple línea a nuestro user.js:

user_pref("accessibility.typeaheadfind.linksonly", false);

Abrir enlaces externos en una ventana o pestaña nueva

Supongamos que estamos navegando con Firefox y se nos ocurre hacer click sobre un enlace en otro programa, por ejemplo Thunderbird. Tenemos un problema por que por defecto Firefox cargará la nueva página en la pestaña activa, lo cual significa que perderemos la página en la que estabamos y tendremos que volver hacia atras si queremos continuar leyendola o en su defecto abrir una pestaña nueva vacia antes de pulsar en el enlace de Thunderbird.

Sin embargo es sencillo hacer que Firefox habra los enlaces externos en una nueva ventana de forma que no interrumpa nuestra navegación. Para ello basta con añadir la siguiente línea al fichero user.js (situado en la carpeta de tu perfil. Si no existe crealo):

user_pref("advanced.system.supportDDEExec", false);

Sin embargo es mas cómodo abrir el enlace externo en una pestaña nueva. Para ello tenemos que recurrir a la extensión TabBrowserExtensions. Una vez editado user.js e instalada la extensión tenemos que editar las opciones de esta, para lo cual nos situamos en Herramientas -> Opciones -> Extensiones, seleccionamos la extensión y hacemos click sobre opciones. Una vez allí seleccionamos la primera opción, Advanced Tabbed Browsing y en "Window Mode" escogemos "Use multiple browsers only when I open them"

Estilos Visuales

En Razto y Delirios de un informático recomendaban hoy una página dedicada a BlueCurve (el tema de Red Hat y Fedora) para Windows en la que se puede encontrar además del tema para Windows un tema para IconPackager, iconos sueltos, un tema para Y'z Toolbar, cursores y temas para Winamp y Trillian.

Además de BlueCurve a mi me gustaría recomendaros algunos otros estilos visuales:


BlueCurveCrystal


Gorilla
HmmXP


Luna VX
PixLuna

Usando el spydisk de Spymac.com

Spymac es una página web ya famosa por ofrecer cuentas de correo gratuitas con 1GB de capacidad, de la misma forma que google, pero en este caso no tenemos que esperar a que google nos invite a probarla.

Lo que pocos saben es que esta página nos ofrece también la posibilidad de alojar nuestro blog de manera gratuita en su servidor (a cambio de incluir un banner en la página) además del otro servicio que nos interesa en este caso, espacio web con 350MB de capacidad.

Para poder usar el spydisk tendremos primero que registrarnos. Introducimos nuestros datos y esperamos el mail de confirmación.

Una vez hecho esto y antes de poder usar nuestro espacio tendremos que activar el blog (si, aunque no lo vayamos a usar). Para ello pulsamos sobre Options, lo que cargará una página con una serie de opciones. Pulsamos primero sobre Contact Information - Completely Confidential y rellenamos todos los datos. Hacemos después lo mismo con Usage of Spymac Services y hacemos click sobre enviar.

Tendremos que esperar unos treinta minutos mientras se procesan los datos, tras lo cual hacemos click sobre el icono de la tela de araña en la parte superior de la página, con lo que debería cargarse una página con las opciones de tu nuevo blog. Si en lugar de esto aparece un mensaje diciendote que no tienes permiso para ver la página vuelve a las opciones y asegurate de haber introducido toda la información. Si lo que aparece es un mensaje diciendote que esperes mientras se procesa tu información, espera otra media hora; si después de este tiempo aún tienes problemas puedes contactar el servicio técnico de spymac en techsupport@spymac.com.

Ahora que ya tienes tu blog preparado ya puedes acceder al espacio web usando un cliente de ftp. La dirección del ftp será ftp://tu_nombre_de_usuario_en_minuscula.spymac.net/, introduce tu nombre de usuario y clave de spymac cuando te lo pidan.

Existe también una aplicación llamada Spydisk que se encuentra en estado de Beta aún (versión 0.5) y con la que alguna gente tiene problemas, así que no es demasiado aconsejable.

Una tercera opción es añadir nuestro espacio en spymac como un sitio de red en Windows. Para ello nos vamos a la carpeta Mis sitios de red; una vez allí en tareas de red, a la izquierda de la pantalla, pulsamos sobre la opción Agregar un sitio de red, lo que abrirá un wizard en el que tendremos que introducir la dirección del ftp (ftp://tu_nombre_de_usuario_en_minuscula.spymac.net/) y el nombre de usuario de spymac (nos pedirá la contraseña de spymac cada vez que conectemos).

Una vez subidos nuestros archivos por ftp podemos acceder a ellos simplemente con nuestro navegador web accediendo a la url http://tu_nombre_de_usuario_en_minuscula.spymac.net:81/

martes, mayo 25, 2004

Como aumentar el tiempo de espera en Firefox

Cuando tenemos la conexión un poco cargada o la red no va demasiado bien es normal obtener mensajes de tiempo de espera agotado debido a que firefox no consigue conectar con la página web en el máximo establecido.

El tiempo de espera se puede aumentar desde about:config (escribe about:config en la barra de dirección del navegador) con la opción network.http.keep-alive.timeout. El valor por defecto es 300, podeis probar por ejemplo con 450 o 600.

lunes, mayo 24, 2004

Estudio de Viabilidad del Sistema (E.V.S)

  • Actividad 1. Establecimiento del alcance del sistema: Se estudia el alcance de la necesidad planteada por el usuario o el cliente. Se determinan los objetivos, se inicia el estudio de los requisitos y se identifican las áreas de la organización afectadas asi como las posibles restricciones económicas, técnicas, operativas y legales.
    • Tarea 1.1. Estudio de la Solicitud: Se realiza una descripción general de la necesidad planteada por el usuario y se estudian las restricciones. Se establecen los objetivos del EVS teniendo en cuenta estas restricciones.
    • Tarea 1.2. Identificación del Alcance del Sistema: Se analiza el alcance de la necesidad planteada (se identifican las unidades organizativas afectadas) y se identifican las restricciones relativas a la sincronización con otros proyectos relacionados.
    • Tarea 1.3: Especificación del Alcance del EVS: En función del alcance del sistema y de los objetivos del EVS se determinan las actividades y tareas a realizar. En particular se decide si realizar un estudio de la situación actual y en el caso de que sea así se identifican los usuarios de las distintas unidades organizativas que participarán en el EVS, solicitando su aceptación y comunicándoles a estos el plan de trabajo.
  • Actividad 2. Estudio de la Situación Actual: Se realiza una valoración de la información existente respecto a los sistemas de información afectados. En función de esto se especifica el nivel de detalle necesario al llevar a cabo el estudio. Si es necesario se constituye un equipo dedicado al estudio y se identifican los usuarios participantes en el mismo. Una vez llevado a cabo el estudio se genera un diagnóstico identificando problemas y posibles mejoras.
    • Tarea 2.1. Valoración del Estudio de la Situación Actual: Se identifican los sistemas de información existentes que se estudiarán y el nivel de detalle con que es necesario hacerlo según la información sobre estos con la que se cuente.
    • Tarea 2.2. Identificación de los Usuarios Participantes en el Estudio de la Situación Actual
    • Tarea 2.3. Descripción de los Sistemas de Información Existentes
    • Tarea 2.3. Realización del Diagnóstico de la Situación Actual
  • Actividad 3. Definición de Requisitos del Sistema: Mediante sesiones de trabajo con los usuarios se determinan los requisitos generales.
    • Tarea 3.1. Identificación de las Directrices Técnicas y de Gestión
    • Tarea 3.2. Identificación de Requisitos: Se deciden que tipo de sesiones de trabajo realizar y con que frecuencia para la obtención de los requisitos. Se realizan las sesiones de trabajo según lo establecido.
    • Tarea 3.3. Catalogación de Requisitos: Se analiza los datos obtenidos en las sesiones de trabajo, catalogando los requisitos según sean funcionales o no funcionales, indicando su prioridad.
  • Actividad 4. Estudio de Alternativas de Solución: Se proponen distintas alternativas que satisfagan los requisitos.
    • Tarea 4.1. Preselección de Alternativas de Solución
    • Tarea 4.2. Descripción de las Alternativas de Solución
  • Actividad 5. Valoración de las Alternativas
    • Tarea 5.1. Estudio de la Inversión
    • Tarea 5.2. Estudio de los Riesgos
    • Tarea 5.3. Planificación de Alternativas
  • Actividad 6. Selección de la Solución.: Se convoca al comité de Dirección, se presentan las soluciones y se aprueba la solución o se determina su inviabilidad.
    • Tarea 6.1. Convocatoria de la Presentación.
    • Tarea 6.2. Evaluación de las Alternativas y Selección.
    • Tarea 6.1. Aprobación de la Solución.

De por que Opera no es mejor que Firefox

De por que Opera no es mejor que Firefox, si. Lo cual no quiere decir de por que Firefox es mejor que Opera. Las dos son opciones muy válidas frente a Internet Explorer, aunque no voy a mentir, me gusta mas Firefox.


Vamos a tratar de hacer de médicos forenses con esta comparativa que mencionaban en Barrapunto para justificar por que es mejor Opera que Firefox (aunque en la página en cuestión el webmaster diga Opera vs. Mozilla. Ya de por si el saber que el webmaster confunde Firefox con Mozilla no es muy alentador.)

comprehensive popup controls to keep unwanted advertising off your desktop

Yup, Opera can do that, and Opera makes it much easier to turn popups on and off. Just press F12 (which also gets you to a lot of other options as well).

No es util tener una tecla de acceso directo para cada función del programa, es un poco de ingeniería de la usabilidad, si no solo las funciones principales del programa, las mas utilizadas. Otra cosa es permitir algún popup suelto, eso si es algo que los usuarios hacen con frecuencia y para eso basta con pulsar Bloq Mayús si tienes la extensión popup allow instalada.
Además Firefox permite filtrar popups por dominios o sitios.

a tab browsing mode that lets you open several pages in a single window, allowing you to load links in the background without leaving the page you're on

Yeah, Opera can do that, and could do it long before anyone else. Opera also makes it easy to make sure that all of your pages show up in a single window.


De hecho el primer navegador con pestañas fue NetCaptor, no Opera. Galeon y Opera las tenían antes que Mozilla, eso si, pero no se si incluso Galeon las tuvo antes que Opera, supongo que no. De todas formas, ¿que importa quien lo hizo primero? Según eso todos deberiamos estar usando NetCaptor por haberlas usado primero.
Firefox tiene las Tabbrowser Extensions con las que customizar las pestañas hasta el infinito y mas allá.

integrated Google search

Opera beats every other browser in the world on integrated searching. We’ve got Google, Amazon.com, Google Groups, eBay, Lycos, AllTheWeb, Download.com, SearchBoss, Images, Videos, MP3s, News, and Opera Support... and you can add your own if you want to.

En Mycroft hay 1213 plugins de búsqueda para Firefox, además de poder añadir los tuyos propios.
Tenemos también la googlebar que es una verdadera alternativa a la barra de Google para IE. ¿Opera tiene algo parecido?

simplified privacy controls that let you cover your tracks more effectively

More effectively than Internet Explorer, yes. More effectively than Opera? No. Mozilla’s privacy controls include History, Saved Form Information, Saved Passwords, Download Manager History, Cookies, and Cache. Opera can do all that, and will let you delete any or all from one screen.

Herramientas -> Opciones -> Privacidad, Limpiar Todo.
Ademas si eres paranoico tenemos la extensión llamada X que añade un botón con el que borrar toda la información relativa a la privacidad con un solo click, sin tener que entrar a las preferencias.

"Plus Opera gives you a great deal of control over what information is given away in the first place, including referrer logging and automatic redirection."


about:config, aunque estaría bien que alguien hiciera una extensión para hacerlo mas facilmente.

And in Opera you can press Control + F11 and make even the main menu (file/edit/view/etc) disappear.

En Firefox entras en modo kiosk con F11 dejando solo las pestañas y la página (lo cual es util, es normal dejar las pestañas, no se si Opera las dejará o no). De todas formas si no quieres mas que la página: Auto Hide.

If I have counted correctly (there are so many I may have lost count!) there are 18 search options and 11 general options on the first screen, and 48 options on the second screen. Opera actually has another panel of options, large icons, which I didn’t even bother to show because they are mostly the same as the small ones... However, this shows clearly that Opera gives you more options than Mozilla.


Logicamente, Firefox solo incluye las opciones mínimas. ¿Quieres mas opciones? En Texturizer listan 183 extensiones para Firefox, aunque hay unas cuantas mas.
¿Quieres mas opciones aún? Aprende XUL, entonces podrás cambiar cualquier cosa de la GUI de Firefox. Que consideren un programa de código abierto menos configurable que uno de código cerrado es ridiculo.
Además, no es justo contar los motores de búsqueda como opciones de configuración como se hace en esta comparativa. ¿Que pasaría si contaramos los 1213 plugins de búsqueda para Firefox de Mycroft? ¿Y si contaramos las opciones de Thunderbird ya que en la comparativa se cuentan las opciones de correo de Opera?

"Still not convinced? Don’t forget that in addition to what I have already mentioned, every toolbar in Opera is completely customizable (using drag and drop), meaning that you can take any of those fields onto any of the toolbars. Opera will also let you edit menus, keyboard commands, and mouse settings by editing plain text files."

Se puede hacer practicamente lo mismo arrastrando iconos y ocultando barras de herramientas. O puedes cambiar toda la GUI con XUL y creando un tema, que basta con saber algo de CSS.


I haven’t examined all of the extensions, and many of them look very cool, but several of them duplicate functionality which Opera has built-in, including Mouse Gestures, which Opera had long before any other web browser. There’s also Close Other Tabs, Kiosk Mode, Alternate Stylesheet Switcher, User Agent Switcher, and several others to add the same functionality you get from Opera out of the box on a much smaller download.


No todo el mundo necesita los gestos de ratón y los usuarios inexpertos no sabrán ni lo que son. ¿Para que aumentar el tamaño del navegador, el tiempo de carga e introducir opciones que el usuario no va a utilizar? Volvemos a principios de la ingenieria de la usabilidad: Keep it simple

Like I said, a lot of them look cool, but many of them are either trivial, or aren’t likely to be used by many people, or have nothing to do with web browsing (such as MineSweeper).

Por eso se llaman extensiones. Lo que no es normal es que un navegador incluya decenas de funciones que los usuarios no utilizan, como hace Opera. Una palabra: Modularidad.

3.3MB for Opera, 6+ for Firebird, 15 for Mozilla, and up to 76 for Internet Explorer... Clearly Opera has the tightest codebase

Concedido, Opera ocupa menos. Lo cual no quiere decir ni mucho menos que su código sea mejor. Me gustaria ver un Opera escrito con XUL. De todas formas cuando descargo un programa no me fijo en el tamaño sino en la funcionalidad. Si no usaría Lynx en lugar de Firefox y también deberían hacerlo la gente que da esa razón para decir que Opera es mejor que Firefox.

¿Conclusión? Dadas esas razones no se puede decir que Opera sea mejor que Firefox, si no que de hecho en casi todos las razones que se usaron en la comparativa para justificar la superioridad de Opera Firefox sale ganando! Increible pero cierto.

Si alguien tiene mas razones que no dude en exponerlas. Hace mucho que no utilizo Opera.

domingo, mayo 23, 2004

Procesos de Métrica 3

En métrica cada proceso o fase se descompone en actividades y estas en tareas. Para referirse a estas se usan abreviaturas de la forma F1 A2 T3 (fase 1, actividad 2, tarea 3).

El orden de las tareas se puede variar, no así el de las actividades ya que muchas veces la entrada de una actividad es la salida de otra. Sin embargo no se dará por concluido un proceso hasta que todas sus actividades hallan finalizado.

Para cada actividad y para cada una de sus tarea se describen los productos a obtener, técnicas, prácticas y participantes (las técnicas y las prácticas se diferencian en que las técnicas están sujetas a estándares y reglas rígidas).

Se define los siguientes procesos o en métrica 3:

  • Planificación de Sistemas de Información: proporciona un marco estratégico de referencia para los Sistemas de Información de un determinado ámbito de la organización.
  • Desarrollo de Sistemas de Información: Abarca todas las actividades y tareas necesarias para el desarrollo del software, desde el análisis de requisitos hasta la instalación del software. Dada su complejidad se subdivide a su vez en varios subprocesos (no actividades):
    • Estudio de Viabilidad del Sistema (EVS): Se analizan las necesidades que se pretenden cubrir con el Sistema de Información, comprobamos si es factible y las distintas alternativas que que podemos utilizar y su valoración.
    • Análsis del Sistema de Información (ASI): Pretende conseguir una especificación detallada del Sistema de Información a traves de un catálogo de requisitos y una serie de modelos.
    • Diseño del Sistema de Información (DSI).
    • Construcción del Sistema de Información (CSI): Se genera el código, se prueba y se crean los manuales de usuario.
    • Implantación y Aceptación del Sistema (IAS).
  • Mantenimiento de Sistemas de Información: Según ISO el mantenimiento comprende la modificación o retirada de todos los componentes del Sistema de Información pero al estar Métrica orientado al proceso de desarrollo en métrica solo refleja los aspectos de mantenimiento correctivo y evolutivo relacionados con el desarrollo (solución de errores y mejora añadiendo funciones).

Cierre mas rápido del sistema

Cuando Windows se cierra cada proceso tiene 20 segundos por defecto para realizar las operaciones necesarias antes de terminar su ejecución y para terminarse a si mismo.

Si un proceso no ha terminado su ejecución en esos 20 segundos de espera Windows nos muestra un cuadro de diálogo preguntándonos si queremos Esperar, Finalizar tarea o Cancelar.

Podemos hacer que el tiempo de espera necesario para que Windows decida matar a un proceso el mismo sea menor, de forma que el cierre de Windows será mas rápido, a cambio de que algunas veces se mate directamente a un proceso que podría haber terminado de forma correcta su ejecución con los 20 segundos de tiempo por defecto.

Para hacer esto abrimos el editor de registro (Inicio -> ejecutar, escribimos regedit) y nos movemos hasta HKEY_CURRENT_USER \ Control Panel \ Desktop, localizando dentro de esta ruta la clave WaitTokillAppTimeout. Hacemos doble click sobre ella y cambiamos el valor de 20.000 (20.000 milisegundos, 20 segundos) a un valor menor (lo recomendado es 4.000 pero podeis probar otros valores).

Nos movemos ahora a HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control y localizamos de nuevo una clave llamada WaitTokillAppTimeout. Doble click sobre ella y bajamos el tiempo de espera a 4.000 (si no existe, la creamos).

Podemos hacer lo mismo con los servicios de Windows, no solo con las aplicaciones, e indicar a Windows que mate los servicios directamente si este no ha respondido en x segundos. Para ello tenemos que modificar la clave WaitToKillServiceTimeout que se encuentra en HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control. Podemos darle un valor de 4.000 si no tenemos servicios importantes.

Messenger Plus! 3.00.92

Como Patchou prometió ya tenemos aquí la tercera versión del mejor add-on para el messenger de microsoft.

Aunque se hablaba de toda una revolución en la concepción del programa la verdad es que no tiene demasiadas mejoras. Ha habido un rediseñado de la estética de la aplicación y las características mas destacadas son las que se comentaron anteriormente.

Cómo evitar el hotlinking

Hotlinking traducido literalmente al castellano significa "enlace caliente". Se refiere a los enlaces que realizamos de imágenes o ficheros de servidores que no nos pertenecen, sin permiso del autor y muchas veces sin siquiera nombrarlo.

Para evitar el hotlinking si estamos usando como servidor web Apache tenemos que modificar o crear un archivo .htaccess en la carpeta donde están los archivos. La forma mas común de evitar el hotlinking (aunque es facilmente engañada) es comprobar el referer. Cuando visitamos una página web esta sabe de que página has llegado a ese sitio (referer) si has entrado a traves de un enlace. En Apache esta información se almacena en HTTP_REFERER.

Supongamos que nuestro sitio web es www.zootropo.es; el siguiente código dentro de .htaccess haría que solo se mostrara la imagen si el referer es una página perteneciente a zootropo.es o si no hay referer (se ha escrito la dirección en la barra de dirección):

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?zootropo\.es/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|bmp|png)$ imagenes/no_permitido.gif [L]

Si quisieramos comprobar archivos con otra extensión solo tendríamos que cambiar las extensiones de la última regla. Además, si en lugar de mostrar una imagen (que al fin y al cabo también esta gastando ancho de banda) queremos simplemente darle un error de forbidden al enlazar la imagen la última regla quedaría así:

RewriteRule \.(jpe?g|gif|bmp|png)$ - [F]

viernes, mayo 21, 2004

PearPC 0.1.2

Ya tenemos aquí la versión 0.1.2 de este emulador para PowerPC y además un front end para configurarlo mas facilmente llamado PearPeeler, vía los foros de MacOnWindows.

Metodologías de desarrollo de software

Una metodología es un conjunto de procedimientos que permiten producir y mantener un producto software, esto es, define una serie de pasos a seguir para obtener un software de calidad.

Por ejemplo Métrica 3 ,la metodología promovida por el Ministerio de Administraciones Públicas (map), define una serie de fases a seguir que se descomponen en actividades y estas en tareas.

Para llevar a cabo las tareas, las metodologías utilizan técnicas que describen como llevarlas a cabo, las cuales suelen ser gráficas como los D.F.D (diagrama de flujo de datos) de SSADM o Métrica.

jueves, mayo 20, 2004

Ciclos de vida del software

Ciclo de vida se refiere al período de tiempo que comienza cuando se concibe la idea de generar el programa hasta que finalmente se retira.


  • Waterfall (en cascada): Se denomina modelo en cascada porque su característica principal es que no se comienza con un paso hasta que no se ha terminado el anterior.

    El principal problema de esta aproximación es el que no podemos esperar el que las especificaciones iniciales sean correctas y completas y que el usuario puede cambiar de opinión sobre una u otra característica. Además los resultados no se pueden ver hasta muy avanzado el proyecto por lo que cualquier cambio debido a un error puede suponer un gran retraso además de un alto coste de desarrollo.

    Como es evidente esto es solo un modelo teórico, si el usuario cambia de opinión en algún aspecto tendremos que volver hacia atras en el ciclo de vida.

  • Prototipos: Consiste en iterar en la fase de análisis tantas veces como sea necesario, mostrando prototipos al usuario para que pueda indicarnos de forma mas eficiente los requisitos del sistema. La iteración finalizará cuando el usuario de el visto bueno al prototipo.

  • Evolutivo: Se diferencia del modelo por prototipos en que en prototipos se da por hecho que aunque se necesiten varias iteraciones para lograrlo al final se llegará a tener una serie de requisitos completos y sin errores, que no vayan a cambiar más.

    En el modelo evolutivo se asume que los requisitos pueden cambiar en cualquier momento del ciclo de vida y no solo en la etapa de análisis.

  • Incremental: Es una aproximación muy parecida a la evolutiva. En este modelo se desarrolla el sistema para satisfacer un subconjunto de los requisitos especificados y en posteriores versiones se incrementa el programa con nuevas funcionalidades que satisfagan mas requisitos.

    En el caso del modelo evolutivo se desarrollaría una nueva versión de todo el sistema, en el incremental se parte de la versión anterior sin cambios y le añadimos las nuevas funciones.

  • En espiral: Toma las ventajas del modelo de desarrollo en cascada y el de prototipos añadiendole el concepto de análisis de riesgo.

    Se definen cuatro actividades:

    • Planificación, en la que se recolectan los requisitos iniciales o nuevos requisitos a añadir en esta iteracióm.

    • Análisis de riesgo; basandonos en los requisitos decidimos si somos capaces o no de desarrollar el software y se toma la decisión de continuar o no continuar.

    • Ingeniería, en el que se desarrolla un prototipo basado en los requisitos obtenidos en la fase de planificación.

    • Evaluación del cliente: el cliente comenta el prototipo. Si esta conforme con el se acaba el proceso, si no se añaden los nuevos requisitos en la siguiente iteración.

  • Basada en transformaciones: Derivado del modelo en cascada, en el se considera que partiendo de las especificaciones y gracias a las herramientas CASE estas se transforman en diseño lógico del software, este se transforma en un diseño físico (un diseño dependiente de la tecnología) y éste en el código final.

Ingeniería del Software

La ingeniería del software es la disciplina tecnológica y administrativa dedicada al tratamiento sistemático de todas las fases del ciclo de vida del software, aplicando principios de la ingeniería para obtener software de calidad.

Sobre el desarrollo de software

El software es muy complejo de producir, gestionar y mantener. Esto unido a la falta de estándares y formalismos en el análisis, diseño e implementación del software, asi como en su mantenimiento, ha provocado una situación insostenible para el mercado del software. Estas carencias provocan retrasos considerables respecto de la planificación inicial, poca productividad y baja calidad en el producto final.

La ingeniería del software es aún un campo demasiado verde y los responsables de la gestión en las empresas no han adquirido aún el conocimiento de que sea necesario una ingeniería derivada del software. Se empeñan muchas veces en construir el edificio sin tener antes los planos. Otras veces son los propios programadores o ingenieros metidos a programadores los que no toman con suficiente seriedad la ingeniería del software, cosa que por otra parte es relativamente normal en programadores del tipo 'pica-códigos' pero que no debería ser así para personas a las que se les ha contratado como ingenieros de software, ya tengan un título de ingeniero informático o no.

¿Donde está fallando la implantación de la idea de la importancia de la ingeniería del software, un proceso que muchas veces se ve como un mero trámite?

Messenger Plus! 3 , el domingo

Patchou, creador de este magnífico plugin para MSN-Messenger de Microsoft ha anunciado que la nueva versión del programa será liberada el domingo.

Según Patchou los cambios en esta nueva versión serán revolucionarios y comparables a los que tuvimos entre las versiones 1 y 2 de Messenger Plus!.

Si aún no conoces este plugin puedes visitar su página oficial o echar un vistazo a algunos de los cambios para la nueva versión en sus foros.





Panel de colores rediseñado





Función de búsqueda







Panel de preferencias de Plugins





Filtros de palabras







Enviador de Citas

miércoles, mayo 19, 2004

Traducción de Mozilla Thunderbird 0.6

La gente del proyecto Nave ha publicado la versión preliminar de su traducción para Mozilla Thunderbird v0.6 que puede ser descargada desde la página web del proyecto.

Operaciones sobre listas en Prolog

  • pertenece(X,[X|_]).
    
    pertenece(X,[_|Cola]) :- pertenece(X,Cola).
  • conc([],L,L).
    
    conc([X|L1],L2,[X|L3]) :- conc(L1,L2,L3).
  • anadir(X,L,[X|L]).
  • quitar(X,[X|Cola],Cola).
    
    quitar(X,[_|Cola],[X|L]) :- quitar(X,Cola,L).
  • insertar(X,L,[X|L]).
    
    insertar(X,[Y|L1],[Y|L2]) :- insertar(X,L1,L2).
  • sublist(S,L) :- conc(L1,L2,L),
    
    conc(S,L3,L2).
  • permutacion([],[]).
    
    permutacion([X|L],P) :- permutacion(L,P1),
    insertar(X,P1,P).

domingo, mayo 16, 2004

Los clásicos de Sierra en tu Game Boy Advance

GBAGI (Game Boy Advance Adventure Game Interpreter) es un emulador de los juegos de aventura de Sierra para Game Boy Advance. Usando una tarjeta flash puedes jugar a tus juegos favoritos de Sierra en la consola portatil de Nintendo, incluyendo King's Quest 1-4, Space Quest 1-2, Police Quest, Leisure Suit Larry, Manhunter 1-2, The Black Cauldron,...

En Advance-Power se puede descargar un pack de 15 juegos de Sierra en un solo rom de GBA de 128M

Foobar2000 0.8.2

Nueva versión de este reproductor cuyas principales características son su bajo consumo de recursos y la calidad de sonido. La lista de cambios es la siguiente:
  • random bugfixes/tweaks

  • made masstagger "input values" not ignore empty lines

  • made component list sorted

  • added "reverse" in sort commands

  • fixed inaccurate output length in resampler DSP

  • updated monkeyaudio library to 3.99

  • average bitrate in multiitem info box

  • added "overwrite all" in diskwriter

  • added "remove empty directories" in masstagger

  • playlist tabs now wrap

sábado, mayo 15, 2004

Quitar las flechas de los accesos directos

Los acceso directos siempre muestran una molesta flechita en la parte inferior izquierda del icono. Quitarlas es sencillo, abrimos el editor del registro (Inicio->ejecutar, escribimos regedit) y dentro del registro borramos IsShortCut de las claves HKEY_CLASSES_ROOT \ lnkfile \ IsShortCut y HKEY_CLASSES_ROOT \ piffile \ IsShortCut. Basta reiniciar para no ver mas esas flechitas.

viernes, mayo 14, 2004

OpenOffice más rápido

Leyendo Delirios de un informático encuentro un truco posteado en Badopi que puede ser muy interesante para la gente que utilice Open Office. Simplemente consiste en asignar mas memoria a Open Office con lo que el tiempo necesario para cargar la aplicación disminuye de forma radical.
Los valores de la memoria que usará Open Office se encuentran en Herramientas -> Configuración -> OpenOffice.org -> Memoria de trabajo. Cambiamos los valores de Uso de OpenOffice.org de 9 por defecto a por ejemplo 40 y Memoria por objeto de 2,4 a 3 por ejemplo dependiendo de la cantidad de memoria de nuestro equipo. Es cuestión de probar.

Previsualización de los comentarios

He encontrado en Korochi Industrias algo que quizás me apetezca probar mas tarde, una vista previa instantánea de como quedará un comentario a la vez que se escribe:

  1. Inserten lo siguiente antes del </head> en las páginas de su weblog. Es decir, en el index, en los templates de archivos y en la de comment listing template:

    <script language="javascript" type="text/javascript">
    <!--
    function ReloadTextDiv()
    {
    var NewText = document.getElementById("comment").value;
    splitText = NewText.split(/\n/).join("<br />");
    var DivElement = document.getElementById("TextDisplay");
    DivElement.innerHTML = splitText;
    }
    //-->
    </script>

  2. Vayan a las páginas donde está el formulario para escribir comentarios y en la parte donde dice <textarea name="text"... agreguen al lado id="comment" y al final onkeyup="ReloadTextDiv();".

    Debería quedar así:

    <textarea name="text" id="comment" rows="10" cols="50" onkeyup="ReloadTextDiv();"></textarea>

  3. En donde quieran que aparezca el preview inserten esto:

    <h1>preview</h1>
    <p id="TextDisplay"></p>

w.bloggar

Este es simplemente un post de prueba para comprobar que tal funciona w.bloggar, una herramienta para publicación en blogs para Windows. Con un primer vistazo a la interfaz parece una buena herramienta, con opciones de formateo de texto, ayuda para insertar etiquetas html y correción ortográfica pero ha sido algo complicado ponerlo en marcha. En un primer momento me daba un error: 'unable to parse the xml response, parse reason : falta un espacio en blanco necesario.' que se soluciona, por si alguien tiene el mismo problema, editando el archivo cms.ini dentro de la subcarpeta cms que se encuentra en la carpeta donde instalamos w.bloggar y cambiando api.blogger.com por www.blogger.com.

Nuevo agujero de seguridad en Windows XP/2003

El nuevo agujero podría permitir a un atacante tomar el control completo del sistema afectado (Symantec lo ha calificado de fallo crítico) aprovechando una vulnerabilidad recientemente descubierta en la forma en que el Centro de Ayuda y Soporte de Microsoft trata la validación HCP URL.
El parche para la vulnerabilidad puede obtenerse en windowsupdate o directamente desde:

Identación en Vim

Añadimos esto al fichero .vimrc:

vnoremap < vnoremap > >gv


Una vez hecho esto ahora cuando estemos en modo visual el pulsar < o > identará o quitará la identación de la línea seleccionada.

Foobar2000 0.8.2 Beta 1

Foobar2000 es un reproductor de música para Windows que destaca por su bajo consumo de recursos y por la calidad de sonido que se consigue con el.
Esta beta puede ser descargada vía bit torrent desde la página web de foobar2000 o vía web desde betanews.

jueves, mayo 13, 2004

Bloglines Toolkit 0.9

Ya comenté hace un par de días Bloglines Tooklit, una extensión para Mozilla/Mozilla Firefox que integra el notificador de Bloglines dentro de nuestro navegador.
Hoy su creador ha liberado la versión 0.9 que corrige alguno de los fallos de la versión anterior (el bloglines se refieren a esta versión como 1.1).


  • Arreglados varios fallos con Javascript
  • Añadida posibilidad de pausar el notificador
  • Incrementados los minimos para el notificador
  • Actualizada la extensión para Mac OS X

miércoles, mayo 12, 2004

Iteraciones de orden superior sobre listas


  1. reduce: Aplica una función a pares de elementos de una lista hasta dejarla en un solo valor.
    (defun reduce (f l base)
    (if (endp l)
    base
    (funcall f (car l) (reduce f (cdr l) base))))


  2. map: Aplica una función a cada elemento de una lista y devuelve una lista con el resultado de aplicar la función a cada elemento.
    (defun map (f l)
    (if (endp l)
    nil
    (cons (funcall f (car l)) (map f (cdr l)))))


  3. accumulate: Practicamente igual a reduce. Es recursión de cola, por lo que es mas eficiente que reduce.
    (defun accumulate (f l acum)
    (if (endp l)
    acum
    (accumulate f (cdr l) (funcall f acum (car l)))))


  4. filter: Verifica que los elementos de una lista cumplan una determinada condición, devolviendo los elementos que cumplen esa condición.
    (defun filter (p l)
    (if (endp l)
    nil
    (if (funcall p (car l))
    (cons (car l) (filter p (cdr l)))
    (filter p (cdr l)))))


  5. exists: Devuelve el primer elemento de la lista que verifique una determinada condición o falso si ninguna la cumple.
    (defun exists (p l)
    (if (endp l)
    nil
    (if (funcall p (car l))
    (car l)
    (exists p (cdr l)))))


  6. for-all: Devuelve true si todos los elementos de una lista cumplen una determinada condición.
    (defun for-all (p l)
    (if (endp l)
    t
    (if (funcall p (car l)) (for-all p (cdr l)) nil)))


  7. zip: Toma dos listas de igual longitud y devuelve la lista cuyo enésimo elemento es el resultado de aplicar la función pasada como parámetro a el elemento enésimo de cada lista.
    (defun zip (f l1 l2)
    (if (endp l1)
    nil
    (cons (funcall f (car l1) (car l2)) (zip f (cdr l1) (cdr l2)))))


Lisp: Argumentos a funciones

(defun nombre función (arg1 ... argN) ... )

arg1...argN son lo que se llaman argumentos regulares, los típicos de cualquier lenguaje de programación. En Lisp tenemos también lo que llamamos parámetros opcionales.

Argumentos opcionales
(defun nombre función (arg1 ... argN &optional op1 ... opN)

Se colocan siempre primero los argumentos regulares. Los valores que se pasan al llamar a esta función se ligan de izquierda a derecha a los nombres de los parámetros como en cualquier otro lenguaje. Si falta algún valor para opcionales el valor del opcional será nil.

Valores por defecto
(defun nombre función (arg1 ... argN &optional (op1 valor1) ... opM))

Podemos darle un valor por defecto a un argumento opcional, de forma que si no se pasa un valor que se ligue a ese parámetro opcional en lugar de nil se tome como valor el valor por defecto. Para hacer esto como vemos se incluye en una lista el nombre del parámetro y su valor por defecto, que tiene que ser un valor fijo, no puede ser una expresión.

Flag de presencia
(defun nombre función (arg1 ... argN &optional (op1 valor1 op1-provided) ... opM) ...

El flag de presencia evalua a nil si no se pasó un valor para ese parámetro opcional y true si si se le pasó. Nos puede servir por ejemplo en el caso en que el valor por defecto sea nil, en cuyo caso sin este flag no se podría diferenciar entre el caso en que no se especificara ningún valor para ese parámetro o que se especificara pero este fuera nil.

Campos clave
(defun nombre función (arg1 ... argN &key clave1 ... &key claveN) ...

Es similar a los parámetros opcionales pero se le asocia un nombre. En el caso de que tenga muchos parámetros opcionales puedo utilizar los campos clave para asociar un nombre al parámetro opcional en la invocación de la función (en la llamada se usa con :nombre-clave, como si fuera una constante).
Por ejemplo sea el prototipo de la función:

(defun incrementar (n &key operacion &optional (i 1))

Se llamaría a la función asi:

(incrementar 5 :operacion 'inc 7)

Campos clave con valor por defecto
(defun nombre función (arg1 ... argN &key (clave1 valor) ...)

Similar a los opcionales con valor por defecto, la única diferencia entre los argumentos opcionales y los campos clave es que al llamar a la función en los campos clave hay que incuir el nombre del campo.


Como último apunte, si no conocemos el número de parámetros que voy a tener se pueden usar los argumentos de resto:

(defun nombre función (arg1 ... argN &key clave &optional opcional &rest largs)

Todos los parámetros que no se hallan ligado se introducirían en una lista llamada largs.

Depuración en Lisp


  • (describe #'nombre funcion) Nos da una descripción completa de la función.
  • (describe objeto) Nos da una descripción de variables y otros símbolos.
  • (apropos nombre objeto) Devuelve las descripciones de los objetos relacionados con el que hemos buscado (por eso el apropos; a proposito de)
  • (dribble "nombre fichero") Forma especial que hace que las iteraciones con Lisp se escriban en un fichero además de imprimirse por pantalla.
  • (dribble) Sin nombre de fichero hace que deje de escribirse en fichero las iteraciones.
  • (trace nombre funcion) Cuando se llama a esa función muestra las llamadas (solo de esa función, si se llama a otras funciones no las muestra)
  • (time forma) Devuelve el tiempo y la memoria usada para ejecutar esa forma.
  • (step expr) Ejecuta paso a paso una expresión y a cada paso abre la shell de depuración.

Estructuras condicionales en Lisp


  • (if condición
    
    expr1
    expr2)

    En el caso de que condición sea cierto se evalua expr1, en caso contrario expr2.

    (if (< nota 5)
    
    'suspenso
    'aprobado)

  • (cond (cond1 expr1)
    
    (cond2 expr2)
    ...
    (t exprN))

    Equivalente a una serie de ifs, si se cumple cond1 se evalua expr1, si no, si cond2 es cierto se evalua expr2,... El t final es opcional y dado que se cumple siempre sería equivalente a un default en un switch de java

    (cond ((< nota 5) 'suspenso)
    
    ((< nota 7) 'aprobado)
    ((< nota 9) 'notable)
    ((< nota 10) 'sobresaliente)
    (t 'error))

  • (case expresion
    
    (valor1 expr1)
    ((valor2 valor3) expr2)
    ...
    (otherwise expr))

    Equivalente a los switchs de Java. Si expresión evalua a valor1 se ejecuta expr1, si evalua a valor2 o valor3 (si puede evaluar a mas de un valor se colocan en una lista) se evalua expr2,... Otherwise es equivalente a default en los switchs de java, se ejecuta si no evalúa a ninguno de los demás.

    Nota: case evalua con eql!!!

    (case nota
    
    ((0 1 2 3 4) 'Suspenso)
    (5 'Aprobado)
    (6 'Bien)
    ((7 8) 'Notable)
    ((9 10) 'Sobresaliente))

Borrar archivos .avi en XP

De vez en cuando puedes tener algún problema para borrar un archivo avi en XP ya que el sistema operativo intenta hacer una previsualización del archivo antes de hacer ninguna otra cosa con el.

Hay dos formas de tratar con este problema; podemos abrir regedit (Inicio->ejecutar, escribimos regedit), movernos hasta la clave HKEY_CLASSES_ROOT\ SystemFileAssociations\.avi\shellex\PropertyHandler y borrar el valor que se encuentra en esta clave o podemos abrir una ventana de símbolo de sistema (Inicio->ejecutar, escribimos cmd) y borrarlo desde allí.

Sindicación RSS

Hace poco tiempo que Blogger incluyo sindicación Atom y se espera que se incluya RSS dentro de poco. Mientras se puede conseguir sindicación RSS via Feedster.

Este sitio ya lo incluye como puede verse en la barra lateral :)

Sindicación RSS de Zootropo

La igualdad en Lisp


  • = ¿Son iguales dos números?
  • eq ¿Los dos argumentos son el mismo objeto? E.d ¿se refieren a la misma posición de memoria?
  • eql ¿Los dos argumentos son el mismo objeto? o ¿son números del mismo tipo y con el mismo valor?
  • equal ¿La representación impresa de los dos argumentos es la misma?

martes, mayo 11, 2004

Bloglines en tu navegador

Logo de BloglinesBloglines Tooklit es una extensión para Mozilla/Mozilla Firefox creada por Chad Everett que integra el notificador de Bloglines dentro de nuestro navegador.

Una vez instalada aparecerá el icono de bloglines en la esquina inferior izquierda del navegador. Un click con el botón derecho del ratón nos mostrará las preferencias, donde debemos indicar la cuenta de correo que usamos con Bloglines.

Quitar el banner de publicidad de blogger

Leido en manu blog

Como me molesta bastante el banner de publicidad lo he quitado usando una miguita de CSS, añade a tus archivos respectivamente:


body {margin: -150px 0 0 0;}
#content {margin:100px auto;}


Actualización 21:25:
Timshel me lo acaba de pasar, parece que el truco es de hace mucho tiempo, la cuestion esta en meter <!-- <body> --> entre <head> y <body>



La primera forma que comenta manu solo ocultaba el banner sin quitarlo. El segundo engaña a blogger para que incluya el código del banner dentro de un comentario, por lo que si hace que no se cargue el banner.

MacOS X en tu PC

Logo de PearPC
PearPC es un emulador bajo licencia GPL independiente de la arquitectura de la plataforma PowerPC capaz de correr la mayoria de los sistemas operativos de PowerPC.


The following operating systems were tested and run (to some extend) under PearPC:

  • Mandrake Linux 9.1 for PPC: Runs very well
  • Darwin for PPC: Runs well
  • Mac OS X 10.3: Runs well with some caveats
  • OpenBSD for PPC: Crashes while booting (accesses PCI in an unsupported way)
  • NetBSD for PPC: Crashes while booting



El programa se encuentra en las primeras etapas de su desarrollo (versión 0.1) por lo que tiene bastantes errores.

Microsoft Sasser (A-E) Worm Removal Tool 3.0

Nueva versión de la herramienta de Microsoft encargada de eliminar el gusano Sasser (A-E) de los equipos infectados.


Una vez aceptado la licencia el programa iniciará un escaneo del sistema en busca del gusano, borrandolo en el caso de que estemos infectados y generando un archivo de log llamado sasscln.log en la carpeta %WINDIR%\debug.

lunes, mayo 10, 2004

Spooks, S.I.O.S.O.S. Volume One

Portada de S.I.O.S.O.S, de Spooks

Posiblemente S.I.O.S.O.S. Volume One, el primer disco de Spooks, sea uno de los mejores discos de hip hop que he tenido el placer de escuchar. Las letras y las melodías de canciones como "Karma Hotel" y "Things I've Seen" están al nivel de clásicos del hip hop y el R&B.


Ming Xia tiene una voz que llega en "Things I've Seen", sobre todo cuando introduce la melodía al principio de la canción y en el estribillo y que combinada con las voces de los chicos crea una gran combinación que llegar a emocionar, sobre todo viendo el videoclip y que te hace pensar si sigues la letra de la canción.


El otro single, Karma Hotel es otro de mis favoritos en este CD. Una música con ritmo, muy cuidada, aunque en este caso sin desmerecer a la música que es fantástica me atrae sobre todo la peculiar visión del infierno que se narra en la letra, otra canción muy recomendable.



Escuchando: Spooks - Things I've Seen del disco S.I.O.S.O.S. Volume One

Knoppix 3.4

Ya esta disponible para descargar la nueva versión de esta distribución Live CD de Linux que se presenta con las siguientes novedades:


  • Linux Kernel 2.4.26 and, as a boot option, Kernel 2.6.5, bothACPI-enabled.
  • KDE version 3.2.2.
  • GIMP version 2.0.
  • New IRDA/Bluetooth-Setup.
  • GPRS internet-connection ready.
  • enhanced hardware autodetection and driver updates, wifi for instance.
  • also boots from (some) USB- and Firewire CD-Roms now.
  • internet-based software "live-installer", installs add-on packages in ramdisk or on persistent home directory.



Es una muy buena distribución para novatos con Linux, tanto por ser Live CD como por su genial soporte de hardware.

El nuevo Blogger

Blogger tiene nuevo look y nuevas características entre las que destacan los nuevos templates, la posibilidad de añadir comentarios para los visitantes, la opción de postear vía email y las post pages para tener permalinks decentes por primera vez de forma que al pulsar sobre un permalink nos lleve a una página exclusiva para ese post con sus comentarios.

Google Print

Leyendo blogs descubro en mini-d la que parece ser la próxima nueva característica del rey de los buscadores. Parece ser que google ha comenzado a indexar libros al estilo A9 de Amazon por lo que podemos leer en esta página http://print.google.com/print/faq.html

domingo, mayo 09, 2004

Operaciones sobre listas en Lisp


  • (list arg1 ... argN) Devuelve la lista formada por los elementos arg1, ... hasta argN.
  • (cons arg1 arg2) Devuelve la lista cuyo car es arg1 y cdr arg2.
  • (car lista) Devuelve el primer elemento de la lista.
  • (cdr lista) Devuelve la lista compuesta por todos los elementos de la lista menos el primero.
  • (first lista) Devuelve el primer elemento de la lista (second, third, ... hasta tenth para devolver el segundo, tercero, ... décimo respectivamente).
  • (nth n lista) Devuelve el elemento número n de la lista.
  • (last lista) Devuelve el último elemento de la lista.
  • (butlast lista n) Devuelve la lista sin los últimos n elementos.
  • (append lista1 lista2) Concatena la lista1 y la lista2.
  • (length lista) Devuelve el número de elementos que tiene la lista.

Algunas funciones matemáticas útiles en Lisp


  • (+ arg1 ... argN) Suma de los números pasados como argumento.
  • (- arg1 ... argN) Resta de los números pasados como argumento.
  • (* arg1 ... argN) Producto de los números pasados como argumento.
  • (/ arg1 ... argN) División de los números pasados como argumento.
  • (max arg1 ... argN) Devuelve el mayor número de entre los argumentos.
  • (min arg1 ... argN) Devuelve el menor número de entre los argumentos.
  • (mod a b) Devuelve el resto de la división entre a y b.
  • (exp a b) Devuelve el resultado de elevar a al exponente b.
  • (float a) Devuelve el número en formato de coma flotante.
  • (floor a) Devuelve la parte entera de un número real.
  • (ceiling a) Redondea al más cercano.
  • (sqrt a) Raíz cuadrada de a.
  • (abs a) Valor absoluto de a.
  • (log a) Devuelve el logaritmo neperiano de a.