lunes, 31 de agosto de 2009

Cómo usar etiquetas HTML con Builder.node

Al usar Builder.node para crear nodos, si queremos que el texto que usamos en dichos nodos sea procesado por el navegador como etiquetas html (scriptaculous hace que se muestren las etiquetas y no se muestren como html) tan sólo hay que sobreescribir la función _text de scriptaculous, realizando la siguiente declaración en cualquier parte del código:

Builder._text = function(text){
var div = document.createElement("div");
div.innerHTML = text;
return div;
}

De esta forma conseguimos que scriptaculous nos permita introducir etiquetas HTML en un nodo creado como texto.

Si usas prototype, es todavía más sencillo:

Builder._text = function(text){
return $(document.createElement("div")).update(text);
}

Otra solución es establecer la propiedad innerHTML del nodo con nuestro texto en lugar de añadirlo con Builder.node, ya que este último crea un nodo de texto:

var node = $(Builder.node('div', attributes, [
Builder.node('table', {height: '100%', width: '100%'}, [
Builder.node('tbody',[
Builder.node('tr', {align: 'center', valign: 'middle'}, [
Builder.node('td', {class: 'nodeText'})
])
])
])
]))

node.getElementsByClassName('nodeText')[0].update(text);

jueves, 27 de agosto de 2009

Cómo hacer tu propia música - by DJ PEP!

No todo el mundo sabe lo sencillo que puede llegar a ser crear tu propia música. No necesitas comprar instrumentos caros, ni secuenciadores, ni samplers, ni sintetizadores... sólo necesitas tu ordenador para crear bases hip-hop, música clásica, música pop, música dance, techno, reggaeton, house... ¡o incluso crear tu propio estilo de música!

Durante años he usado para ello el software Fast Tracker II. Este software es un tracker. Un tracker es un secuenciador por software que permite mezclar samples para crear música.

Aunque esto no es ninguna novedad (el programa Fast Tracker 2 tiene más de 15 años), todavía hay gente a la que le gustaría hacer su propia música y no encuentra los medios adecuados. Muchas veces se pierden con programas comerciales que, lejos de dotar al usuario de libertad para crear su propia música, se limita únicamente a permitir que el usuario mezcle una serie de loops (bucles) predefinidos, dándole la ilusión de haber creado su propia canción. Fast Tracker II, a parte de que es totalmente gratuito (y sus alternativas existentes hoy en día también), te da total libertad para crear tu propia música, sea del estilo que sea. Simplemente determina los samples (muestras de sonido) que vas a utilizar y crea tu composición.

Un gran punto a favor de la larga edad de los trackers (sus orígenes se remontan a lo tiempos de amiga y commodore 64, hace más de 20 años) es que puedes encontrar infinidad de música en formato para trackers.
¿Qué tiene esto de bueno? pues que una canción en formato XM, MOD, S3M, IT, etc... a diferencia de los famosísimos MP3, incorporan los samples (muestras de sonido: voces, sonidos de instrumentos, efectos especiales, etc...) y la estructura de la composición. Lo que significa que puedes usar esos samples en tus canciones y puedes ver la estructura de las canciones para aprender de los grandes maestros. ¡y hay millones de canciones!. Por supuesto todo esto de forma totalmente legal y gratuita.

Fast Tracker II es un programa muy antiguo, que sólo funciona en versiones del sistema operativo MS-DOS. Pero gracias a su gran popularidad, existen diferentes alternativas tanto para Windows, como para Mac, Linux... ¡hasta para la Nintendo DS!. Tras el fin del reinado de Ms-Dos en los Pc, yo pasé a utilizar Skale Tracker. Es igual que Fast Tracker 2, pero funciona bajo Windows :) Aunque existen otros clones de FT2 como Modplug Tracker (el primer clon de Ft2 para Windows), Fast Tracker III (fue un proyecto que empezó y nunca llegó a acabarse). MilyTracker también es un buen clon de Fast Tracker 2, disponible para varias plataformas.

En la web puedes encontrar infinidad de tutoriales para aprender a utilizar el Fast Tracker 2 (y sus clones). Por lo que no voy a rehacer aquí un largo tutorial, habiendo muchos disponibles (otro punto a favor de su larga edad!).

Mucha gente que ha hecho música comercial ha empezado su carrera musical con trackers. En cambio, otros muchos, simplemente usan o han usado los trackers como hobby, como es mi caso.
Comencé a usar Fast Tracker por allá por 1997. ¡En aquellos tiempos no teníamos internet!, sólo teníamos lo que nos pasaban los colegas y lo que venía en las revistas de ordenadores. Por lo que no tuve la suerte de leer ningún manual de Ft2, así que aprendí a usarlo "trasteando" y viendo módulos (un módulo es una canción) que venían con la revista PcMania. Por aquel entonces había un concurso de módulos donde la gente mandaba sus composiciones y, mensualmente, la revista publicaba una selección de dichas composiciones, otorgando a una de ellas un fantástico premio que consistía en una tarjeta de sonido Sound Blaster AWE 64 (envidiada por aquella época) y anualmente, entre los ganadores mensuales, había un gran ganador que ganaba un fantástico pc de última generación (un pentium pro era un pc de última generación entonces).

Tras aprender a usar el Ft2 yo también empecé a enviar mis módulos a PcMania, a través de la cual podía dar a conocer mis composiciones a gente de todo el país y pude hacer muchos amigos (nada de e-mails, sólo correo ordinario y teléfono). A mi lado nació otro gran tracker: "DJ Melón!". Llegamos a montar un grupo llamado BMR (Background Music Revolution). Significa algo así como "la revolución de la música de fondo". Simplemente éramos una agrupación virtual, unidos para reforzar el movimiento de la música tracker. El grupo estaba compuesto por Ace, a-track, dj attack!, Dj Pep! (un servidor), Dj LinePower, Dtk/Reverb, Jacko, Sole, SnabischCreator y Sys (DUAL SYSTEM).

Durante aquella época PcMania me publicó muchos módulos. También sonaron en una radio local de Elche, en un programa llamado síntesis. Posteriormente, 3 de de mis módulos fueron publicados en una revista de tuning en un cd complementario. Tras un tiempo PcMania quitó el concurso de módulos, con lo cual desapareció la constante motivación para producir módulos, y se dificultó la adquisición de nuevos módulos. Todo esto se juntaba con que yo cada vez tenía menos tiempo libre, y prácticamente dejé de realizar música. Entre el 97 y el 2000 hice decenas de mods. Posteriormente, tras 7 años realicé otros 2, los cuales fueron los últimos.

DJ PEP! - 2009

martes, 25 de agosto de 2009

¿Por qué javascript devuelve 0 con parseInt('08') y parseInt('09') ?

Si compruebas qué devuelve javascript si haces la llamada "parseInt("08")" verás que obtienes un bonito cero... ¿por qué?, porque javascript toma los números que empiezan por cero como octales y, como sabrás, el número 8 y el número 9 no existen en dicho sistema. Para que esto no ocurra basta con indicar la base de la conversión en el segundo parámetro. La llamada correcta sería "parseInt("08", 10);"

lunes, 24 de agosto de 2009

Un alcoholímetro para tu móvil

Este programa sirve para calcular el índice de alcoholemia. El índice de alcohol indica la concentración de alcohol que circula por tu cuerpo. Esta concentración depende de la cantidad de alcohol ingerida, el tiempo desde el cual se ha consumido y la cantidad de agua del cuerpo (esto depende principalmente del género y del peso).



De forma orientativa este programa calcula tu nivel de alcoholemia. Ten en cuenta que el resultado puede ser distinto al de la realidad (según el tiempo, cantidad ingerida y otros factores).



Para que te puedas llevar el programa a los bares, a las discotecas, a los botellones, a las bodas, a la universidad.... de forma que puedas consultar el nivel de alcohol en tu cuerpo para pensártelo dos veces antes de coger el coche, la moto, la bici, los patines... aquí tienes una versión descargable para tu móvil completamente gratuita:




Si alguien pone el programa en otra web u otro foro, me gustaría pedirle que enlace a la misma dirección (mi blog), no es necesario volver a subirlo a megaupload ni a rapidshare. Las próximas actualizaciones estarán disponibles ahí. Es lo único que pido a cambio de regalar mi trabajo.











Los móviles compatibles son los symbian s60 3ª edición FP2 y todos los symbian s60 5ª edición (Casi todos los últimos terminales de nokia).



ACTUALIZACIÓN: Tras un problema encontrado con algunas versiones de firmware de los Nokia 5800 Xpress Music he actualizado la aplicación a la versión 1.01 para corregir dicho problema. Aunque es 100% recomendable actualizar el firmware de tu móvil, tanto para corregir problemas de funcionamiento y seguridad, como para tener las últimas novedades.

viernes, 7 de agosto de 2009

Automatizar cambios de configuracion en Firefox

¿Quieres ocultar la barra de navegación a los usuarios de tu web pero firefox no te lo permite? ¿Te ocurre lo mismo intentando cerrar la ventana principal desde javascript?

Todo esto y todo lo que puedes configurar mediante "about:config" es posible automatizarlo mediante un sencillo script como este:

 
Option Explicit
On Error Resume Next

Dim objFSO
Dim objFolder
Dim tso

Set objFSO = CreateObject("Scripting.FileSystemObject")

' Crea el fichero user.js para cambiar las preferencias de Firefox (de los nuevos perfiles que se vayan a crear)
Set tso = objFSO.OpenTextFile(CreateObject("WScript.Shell").ExpandEnvironmentStrings("%PROGRAMFILES%") & "\Mozilla Firefox\defaults\profile\user.js",2,True)
tso.WriteLine("user_pref('dom.disable_window_open_feature.location', false);")
tso.WriteLine("user_pref('dom.allow_scripts_to_close_windows', true);")
tso.Close

' Crea el fichero user.js para cada perfil con las preferencias de Firefox
set objFolder = objFSO.GetFolder(CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Mozilla\Firefox\Profiles")
for each objFolder in objFolder.SubFolders
Set tso = objFSO.OpenTextFile(objFolder.Path & "\user.js",2,True)
tso.WriteLine("user_pref('dom.disable_window_open_feature.location', false);")
tso.WriteLine("user_pref('dom.allow_scripts_to_close_windows', true);")
tso.Close
next

MsgBox "Modificación finalizada (debe reiniciar Firefox si está abierto)"

Wscript.Quit

Debido a restricciones de seguridad, este script no puede ser ejecutado desde tu web, pero el usuario puede descargarlo y ejecutarlo en su máquina.

Puedes cambiar tantos parámetros de configuración como desees, añadiendo líneas como la que ves en el script:

 
tso.WriteLine("user_pref('OPCION_A_CONFIGURAR', VALOR_DE_LA_OPCION);")

El script lo que hace es crear un fichero user.js y copiarlo a todos los perfiles de firefox, de forma que cuando el usuario arranque firefox tendrá configuradas las opciones tal y como se ha especificado en el script.

El script sólo funciona bajo Windows, pero si necesitas crear uno para otro sistema operativo es muy sencillo viendo este.

jueves, 6 de agosto de 2009

Google Gears: Comprobar si estamos online u offline

Con esta sencilla función, podemos comprobar si estamos conectados a la red o, por el contrario, estamos sin conexión:

 
/*Comprueba si el servidor esta accesible (si la aplicacion esta en modo ONLINE/OFFLINE)*/
function isServerAvailable(callback, repeatForever, previouslyOnline) {
var request= google.gears.factory.create('beta.httprequest');
var TIME_BETWEEN_PINGS= 3*1000;
var resource_to_test = "UN_ARCHIVO_DE_TU_WEB";

resource_to_test += "?q=" + Math.floor(Math.random() * 100000);
request.open('GET', resource_to_test);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var currentlyOnline = request.responseText != "" && request.responseText.indexOf("404 Page not found") == -1;
if(currentlyOnline != previouslyOnline){
callback(currentlyOnline);
previouslyOnline = currentlyOnline;
}

if(repeatForever)
window.setTimeout("common.isServerAvailable("+callback+",true,"+currentlyOnline+")",TIME_BETWEEN_PINGS);
}
}

request.send();
}
Acuérdate de darle un valor a la variable "resource_to_test".

Su uso es el siguiente:

 isServerAvailable(function(online){
alert("Estas " + (online ? "online" : "offline"));
}, true);
De esta forma sencilla puedes indicar en tu aplicación Gears si el usuario está conectado a la red de redes o está sin conexión :-D

¿Cuándo me va a tocar la lotería?

Este simulador realiza sorteos ficticios de lotería.En cada sorteo se calcula un número aleatorio entre 0 y 99.999.Introduciendo el número que juegas todas las semanas y pulsando sobre el botón sabrás cuanto tiempo ha de pasar para que te toque la lotería.El simulador supone que cada semana compras 1 décimo de lotería. Si te toca, mejor si te toca la de navidad :)
Tu edad:
Precio medio de cada décimo:
Número apostado: