Declarar una función en Javascript

Hemos hablado mucho de javascript en este blog, pero a veces nos dejamos por explicar cosas básicas ¿Cómo se declara una función? y ya puestos ¿para qué sirve hacerlo?

Bueno, la utilidad de una función es no tener que repetir el mismo bloque de código varias veces. Nos permite agrupar externamente una serie de instrucciones para luego llamarla desde cualquier parte del código.

Para declarar una función debemos usar la palabra reservada function. Tras ella, separada por un espacio, ponemos el nombre que queremos darle seguido de los párametros que recibirá ,si es que recibe alguno, que pondremos entre paréntesis. Abriremos unas llaves y dentro insertaremos el código de la función. Si la función debe devolver un valor esto lo definiremos con la palabra return, que además finalizará la función. Vamos con un ejemplo práctico, una función que calcula un precio final aplicándole unos valores fijos al que recibe:

function precioFinal(precio,descuento){
  var ivaCultural = 1.21;
  var gastosEnvio = 10;
  var precioFinal = (precio*ivaCultural*(100-descuento/100))+10;
  return precioFinal.toFixed(2);
}

La función recibiría un precio y un descuento en porcentaje, le añadiría el IVA, le aplicaría el descuento, le sumaria los gastos de envío y devolvería el resultado rendondeado a dos decimales. En el código llamaríamos así a la función:

var precio = precioFinal(449.99,10);

Como el intérprete de javascript de los navegadores busca en primer lugar la declaración de variables y de funciones una función puede aparecer en el código antes de ser declarada.

Lista de reproducción celtibérica

Vamos con una listilla de temas provenientes del estado español sin caer en la etiqueta rancia de “rock estatal” (vamos que no hay Marea ni Platero ni Extremoduro porque no me ha salido del testículo derecho). Originalmente la idea era hacer una lista ordenada cronológicamente, pero después preferí dejar un orden que fuera algo más coherente en el lado musical. Así, a botepronto, 35 temas tirando mucho del archivo de RTVE y dejándome fuera alguna honrosa mención:

Ale, disfrutad de la historia esta.

El Bandcamp de la Quincena: Electric Citizen – Higher Time (27/11/2016)

El primer disco que se comentó en la sección El Bandcamp de la Quincena no era de mi colección personal, lo había adquirido previamente en un crowdfunding. En este caso la situación es similar, este discazo no está entre mi librería de Bandcamp porque acabó llegando a mis manos en otro formato y por otros medios, pero está disponible para su escucha y adquisición.

Electric Citizen llegan desde los Estados Unidos, desde Cincinnati, una ciudad mediana (tiene equipo de baseball profesional, durante años también lo tuvieron de la NBA y hay dos campus universitarios) en el lluvioso y aburrido estado de Ohio. Una población que está a la vez hermanada con Tijuana y con Munich era claramente el caldo de cultivo para el nacimiento de una de las bandas de stoner más potentes de la actualidad. Todavía no tienen el nombre de Red Fang, de acuerdo, pero todo se andará.

Electric Citizen

El impacto de este Higher Time para mi fue tremendo, tanto que al poco de adquirirlo se había colado ya en mi selección de 200 discos indispensables. Con un matrimonio al frente, al estilo de Nashville Pussy, nos presentan una colección de temas donde el doom metal, la psicodelia y el hard rock se combinan con exquisita precisión. El peso musical se carga sobre los hombros del guitarrista Ross Dolan, padre de la tremenda colección de riffs, arreglos y punteos que dan forma a este disco. La literatura va de la mano de Laura Dolan, excepto en el tema Higher Time donde adaptan un poema previamente escrito por Ross. Laura también es quien nos hipnotiza con su voz y su presencia escénica, toda una frontwoman. Completan la banda Randy Proctor al bajo y Nate Wagner a la batería formando una más que competente base rítmica que dan el peso necesario a los riffs y voces de los Dolan. Para la grabación además han contado con dos teclistas: Andrew Highley y Yusef Quota, que dan el necesario toque setentero a base de mantas de Hammond y moog. La producción va a cargo de Brian Olive, un músico reputado ganador de un Grammy al lado del mítico Dr. John y con mucho nombre en la escena garagera de Ohio.

Los temas de la banda se acerca mucho al rock más clasicote en sus arreglos, mostrando una evolución muy marcada desde la publicación de su previo disco Sateen, de 2014. La experiencia de girar junto a bandas del calibre de Pentagram, Wolfmother o Fu Manchu les ha catapultado hacia su madurez musical. Su sonido para mi les emparejaría con bandas como Spiritual Beggars, con un cierto deje a los Black Sabbath de finales de los 70 (los infravalorados Technical Ecstasy y Never Say Die) o incluso a la gente más “ruidosa” de la época como MC5, Steppenwolf y Grand Funk Railroad, y también con algún deje del sonido alternativo de los Detroit Cobras, PJ Harvey 0 John Spencer Blues Explosion.

La colección de temas de este Higher Time no puede ser más completa, 10 canciones de las que me cuesta destacar o defenestrar algún tema, manteniendo un nivel muy alto en cada composición, sin dejar caer su hipnótico guitarreo. En serio, no sabría decirte qué elegiría como single, la regularidad es la seña de identidad del disco. ¿Hard Rock? ¿Psicodelia? ¿Stoner? ¿Heavy metal? ¿Rock clásico? Un poco de cada una de esas etiquetas para conformar este trabajo redondo.

Mi conclusión: uno de los discos del año que tienes que pillarte ya. Lo agradecerás.

 

SQL Server: Obtener la primera o la última palabra de una cadena.

El caso: tenemos una cadena de caracteres en SQL-Server (2008 R2 para más señas), donde las palabras están separadas por un caracter concreto. ¿Cómo obtenemos la primera palabra mediante una consulta? ¿Y la última?

La primera es fácil, sólo tenemos que hacer un SUBSTRING() que llegue hasta la primera aparición del caracter separador, que en este caso es un espacio:

DECLARE @test NVARCHAR(255)
SET @test = 'Esto es una frase'
Select SUBSTRING(@test, 1, CHARINDEX(' ', @test, 1) - 1)

¿Y la última? La cosa se torna compleja en SQL-Server 2008 (no se si en versiones posteriores es más sencillo). Y es que tenemos CHARINDEX(), que nos localiza la primera aparición del caracter empezando a contar desde una posición fija, pero no algo similar a LASTINDEX que nos diga la última posición. Entonces ¿cómo vamos a sacar esta última palabra? Pues sirviéndonos de la función REVERSE() para poder encontrar la última aparición del espacio a base de darle la vuelta a la cadena:

DECLARE @test NVARCHAR(255)
SET @test = 'Esto es una frase'
SELECT REVERSE(LEFT(REVERSE(@test), CHARINDEX(' ', REVERSE(@test))-1 ))

Usando el comando find para encontrar varias extensiones de archivo en Linux

Vamos con una entradilla sobre comandos en Linux para celebrar que hoy Microsoft se ha unido a la Linux Foundation. Sabemos que con el comando find seguido de una cadena de caracteres podemos encontrar todos los ficheros con esa extensión dentro de un directorio, veamos cómo sería la sintaxis más simplificada:

# find *.zip

La instrucción de arriba nos mostraría todos los ficheros cuyo nombre termine en .zip que estén situados en la carpeta en la que nos encontremos.

Ok, ¿y si quiero buscar varias extensiones?. Veamos ¿cómo sería el comando para buscar tanto los zip como los txt?

# find . -type f \( -name "*.zip" -o -name "*.txt" \)

Aquí ya tenemos una sintaxis un pelín más compleja, expliquemos paso a paso todo:

El . indica que queremos buscar en el directorio actual. Con -type f decimos que queremos buscar por tipo de fichero y que queremos archivos simples, no carpetas u ocultos. Entre paréntesis metemos la condición de lo que queremos buscar: con el -name indicamos que queremos buscar un patrón, que lo definimos a continuación entre comillas (el “*.zip” y el “*.txt”, que vendrían a decir que queremos todo lo que acabe en esas extensiones) y el -o nos serviría como un operador lógico or. Si te fijas antes de cada paréntesis se ha introducido el carácter de escape \ para evitar posibles problemas de sintaxis.

Es decir, toda la clave es usar el -o para añadir más condiciones a la función de búsqueda, pudiendo así definir varios patrones.

El Bandcamp de la quincena: Earthless – From the Ages (13/11/2016)

Nos volvemos a San Diego en El Bandcamp de la Quincena, la patria de nuestros queridos Sacri Monti, y vamos con un disco que ya tiene una edad y corre a cargo de una de las bandas seminales de la nueva psicodelia americana, además de compañeros de sello de los antes citados: Earthless

Si te digo Mario Rubalcaba es posible que pienses que hablo del sobrino del que fuera ministro del Interior, vicepresidente y posteriormente candidato del PSOE. Pero no, te hablo de un skater profesional que, tras su retirada a principios de los 90, se convirtió en uno de los batería más activos de su ciudad. Es posible que relaciones su nombre con el punk: Rocket from the Crypt, The Black Heart Procession, Hot Snakes, Black Flag o la superbanda de veteranos del hardcore punk Off! forman parte de su currículum. Pero entre medias y desde 2001 se encarga de los parches en la banda Earthless junto al bajista Mike Eginton y el guitarrista Isaiah Mitchell.

Este From the Ages data de principios del 2013 y hasta el momento es el último largo de los Earthless, que no hace mucho han publicado un split con Harsh Toke titulado Acid Crusher. El susodicho disco llegaba tras seis años de espera desde la publicación Rhythms from a Cosmic Sky, publicado en mayo de 2007, que a pesar de la publicación de un directo y varios split se hizo larga a sus fans.

Earthless From the Ages

El sonido de Earthless bebe del hard rock, el rock psicodélico y el krautrock, de las bandas de los 70 que fueron inspiración y padres del stoner como Pentagram, Flower Travelin’ Band, Blues Creation y los omnipresentes Black Sabbath, de germanos como Magma o Amon Düül II y hasta un toque de jazz fusión en algunas partes. Su amor por la psicodelia, sus largos desarrollos instrumentales y su estilo basado en la improvisación hace que la JPT Scare Band sea otra referencia fundamental.

Lo que en From The Ages nos ofrecen es más de una hora de improvisación psicodélica repartida entre sólo cuatro temas: las iniciales Violence of the Red Sea (ojito la bajista en esta), Uluru Rock, la cortita Equus October (no es que un tema de cinco minutos y medio sea generalmente lo que llamamos “corto”, pero en este disco sí lo es) y la apoteosis final en una From the Ages que se va por encima de la media hora.

¿Un disco de rock psicodélico instrumental con temas largos? A más de uno le espantará el concepto o pensará “qué coñazo“. Quien así lo prejuzgue mal obrará y se perderá una pieza de buen rock que de aburrido no tiene nada, todo lo contrario, es un disco intenso con un trabajo para quitarse el sombrero tanto en lo rítmico como en las partes de guitarra, en las que Isaiah Mitchell destaca por méritos propios.

Ya tiene un tiempo, pero si todavía no has escuchado este From the Ages va siendo hora de que le pegues una escucha.

 

Graham Bonnet Band – Santiago de Compostela 05/11/2016

Vamos con una minicrónica del conciertillo/conciertazo que se marcó ayer la Graham Bonnet Band, aka Graham Bonnet y Señora. Sólo unas líneas que ya se encargarán los colegas de Pelletier Horror de contarlo fetén.

A los teloneros, Aquelarre, no los conocía. Allá en la sala no logré sacar mucha más información aparte de su procedencia: son vigueses. Literalmente suenan a banda española del catálogo de Locomotive Music de finales de los 90-principios de los dosmiles.

En cuanto al señor Bonnet la impresión general fue buena, con sus luces y con sus sombras. Decía aquel comentarista latino “Cuidado, que este sabe, cuidado que Milla sabe” y con Bonnet pasa lo mismo, perro viejo con muchos años de escenario y de no probarlo. Se recorrió muchos de los grandes hitos de su carrera haciendo hincapié en el Down To Earth del que sonaron cinco temas: Eyes of the World y All Night long, con las que abrió, Love’s no friend, un Since you’ve been gone  que le quedó fetén y levantó a todo el público y Lost in Hollywood para despedirse de la audiencia. Entre medias hubo tiempo de recordar también su paso por MSG con piezas como Assault Attack, sus años de boss de Malmsteen y Vai en Alcatrazz o su muchas veces olvidado e infravalorado disco en solitario Line Up, del que sonaron SOS y esa tremenda pieza de hard rock que es Night Games. Así que haciendo un balance la cosa quedaría así:

Contras (empiezo por lo malo):

  • Los coros pregrabados ya son un mal de estos días que asumimos que ocurrirá con la mayor parte de bandas ochenteras, pero llevar los teclados pregrabados y disparados en un grupo donde van a sonar en todos los temas es bastante cutre. Mr Bonnet, estírese y contrate a alguien que le toque las teclas.
  • Lógicamente la edad no perdona y con 68 años hubo algunos temas donde los años pesaron.
  • No es un contra propiamente dicho, pero me faltó que metiera algún temilla de Impelliteri y alguna más del No Parole de Alcatrazz (Hiroshima mon Amour o Too young to Die, too drunk to live habrían estado más que fetén)

Pros (lo bueno, lo fetén)

  • A pesar de lo reseñado arriba se marcó un set list completito, con temas de múltiples etapas y sin meter material de otros vocalistas.
  • Carisma y simpatía por un tubo sobre las tablas, y luego se bajó a firmar y sacarse fotos con todo el que quisiera.
  • Obviando la falta de teclista la banda muy bien. Al italo-brasileño Conrado Pesinato le tocaba un buen marrón, comerse los solos de Blackmore, Schenker, Moody, Vai o Malmsteen, un tremendo repóker de guitarristas del que salió airoso con gran talento aunque con algo de abuso del tapping. El batería parece ser que había sido contratado a última hora por tener lesionado al habitual pero cumplió sin fisuras. Beth-Ami Heavenstone se desempeñó también muy sobriamente en el puesto de bajista, atizándole unas buenas copillas de whisky entre tema y tema.
  • Aunque en algún tema se hizo evidente que los años pesaban no recurrió al rastrero truquito de ponerle el micro constantemente al público, y de hecho tampoco bajó el tono de los temas.
  • Bonnet ni lleva bisoñé ni subió a ningún telonero a que le cantara el Burn. Eso le da unos puntos más de dignidad sobre otros ex-vocalistas de Rainbow. Sigue con su clásico tupé de James Dean, sus eternas gafas y su corbata (nos faltó sólo la americana en tonos pastel), una marca de la casa, una de las estéticas más personales del heavy metal.

Yo, por mi parte, ya puedo decir que he visto a todos los cantantes de Rainbow a pesar de no haber visto nunca a Rainbow (con Black Sabbath me pasa lo mismo). No fue un concierto que diga “me cambió la vida” pero disfruté de una buena noche de buen hard rock/heavy metal clásico a cargo de la banda de Graham Bonnet y señora. Doy por bien invertida la entrada.