El Bandcamp de la Quincena: Hijo de la Tormenta – El manto de la especie (22/01/2017)

Hace casi un año que empezábamos esta sección hablando de los Mutant y hoy nos vamos a volar hacia Argentina para una nueva entrega:

Si decimos Argentina y psicodelia todo el mundo pensará en Serú Girán. Si decimos Argentina y stoner la cabeza se nos irá a Los Natas. Si decimos Argentina y blues eléctrico y ruidoso será Pappo quien se venga a la cabeza. ¿Y qué nos sale si unimos todo eso en una banda argentina? Pues que no sale Hijo de la Tormenta.

Procedentes de la provincia de Córdoba estos tres chicos nos ofrecen una rendición al sonido más saturado de los 70 en El Manto de la Especie, haciendo lo que ellos definen con la etiqueta «psicodelia del monte«.  Un stoner que bebe de los clásicos, con  un bajo cálido y de sonido y deje clásico de la mano de Guido di Carlo, una guitarra con la distorsión llevada a niveles atronadores que hace honor al nombre del grupo en manos de Juan Cruz Ledesma y un batería que no hace ascos al jazz o al progresivo personificado en Santiago Ludueña. En la mitad de los temas cuentan también con el órgano de Fabricio Morás.

La música y las letras aparecen firmadas por todo el grupo, menos la de 53 Cosechas, a cargo de un tal Pablo Boris, y la de El Abuelo, que es una traducción de un poema de Walt Whitman (que cuando la escuché por primera vez pensé que era una trolleada, porque tardan bastante en empezar a cantar). La masterización va a cargo de Billy Anderson, cuyo nombre en el stoner es intocable por haber trabajado con Sleep, Acid Bath y Los Natas. El arte de la portada y el disco viene de la mano de Florencia Cossutta y Ángel Fundie Biela.

Hijo de La Tormenta

Como ya dije arriba, hacen un stoner que bebe del rock duro protometálico de los 70 y que, a veces, le pone ojitos al jazz o al progresivo, provocando también evocaciones al sonido del llamado krautrock.  Esto último es más evidente en los temas que han incluido teclados, donde la influencia de nombres como Magma o Amon Düül II parece hacerse patente. También hay sitio para otros compañeros de viaje, con esos escarceos jazz que podrían evocar nombres como Colosseum II o recordarnos al seminal Iommi en los primeros trabajos de Black Sabbath donde se dejaba llevar por la influencia de su admirado Django. El fuzz infernal machacándonos el riffs blueseros eléctricos hará pensar en Leaf Hound, Sir Lord Baltimore o Blue Cheer, y sus ambientes pueden hacernos pensar en el rock spacial de Hawkwind pero nos llevarán también al sonido de bandas contemporáneas como los enormes (y nunca bien ponderados) All Them Witches, banda con cuyo espíritu parecen estar muy en sintonía estos muchachotes argentinos.Incluso juegan con el folk más oscuro en algunos fragmentos, como en el corto tema instrumental que cierra el disco.

Hace casi un año de la publicación de El Manto de la Especie, que salió el 19 de febrero de 2016. Si todavía no lo has escuchado hazte un favor, póntelo ya. Déjate llevar por los devaneos psicodélicos de Hijo de la Tormenta, una banda con muchas alegrías que proporcionar.

Cinco jugadores que han gustado en este arranque de la NBA 2017.

Se ha consumido casi un tercio de la temporada NBA y este año estoy viendo más partidos que nunca, gracias al league pass. En todos lados se habla ya de los candidatos al MVP, de las temporadas estratosféricas que están haciendo Westbrook a golpe de triple-doble y Harden llevando la manija del frenético ataque de D’Antoni. Sin olvidar a los omnipresentes Durant, Curry y LeBron, a un Davis al que pesa estar demasiado solo en New Orleans o a un Kawhi al que tal vez le pase lo contrario, esta rodeado de un equipazo que hace que parezca menos destacado. Pero no voy a hablar de estas megaestrellas sino de una serie de jugadores que han llamado mi atención por su evolución en este arranque de temporada. Vamos con ello:

  • Jabari Parker: El número 2 del draft de 2014 empezó con muy mala pata su andadura por la NBA. Fue el mejor novato en  su primer mes de competición pero se rompió para toda la temporada en el segundo. Tras 25 partidos su año rookie se iba al guano. La pasada temporada jugó sus primeros minutos con la liga ya comenzada, sin poder hacer pretemporada, necesitó unos meses para coger ritmo pero tras el paró del All-star empezamos a ver el nivel que puede ofrecer. Y este año, a la sombra del gigante griego Antetokounmpo, está mostrando el nivel que prometía en Duke. Su promedio anotador se ha ido a los 19 puntos por partido y su rango de tiro ha aumentado, pasando de un mediocre 25% desde el triple a un aceptable 36% que hace que los defensores no puedan flotarle si se mueve por fuera. El que fuera McDonalds All American en el instituto y estrella universitaria en Duke por fin está en el nivel que proyectaba, moviéndose con versatilidad entre un tres atlético y un cuatro abierto. Cuando le vemos finalizar con un mate estratosférico un contraataque dirigido por el «Greek Freak» o por Dellavedova es imposible no recordar al mítico James Worthy culminando los «mágicos» pases que le suministraba la leyenda del showtime.
  • Larry Nance Jr: Uno pensará que qué pinta aquí un jugador que promedia alrededor de 7 puntos y 6 rebotes y al que la mayoría conocen sólo por sus regulares apariciones machacando el aro en más de una recopilación de highlights del día. Y es que el hijo del mítico ex-jugador de Phoenix y Cleveland está muy lejos de los números de su padre, aunque nos recuerde mucho a él cuando le vemos finalizar un ataque con un mate fabuloso. Pero el basket son más que números, y si alguien ha visto a los Lakers esta temporada habrá podido comprobar el liderazgo que este gladiador ejerce en la segunda unidad. Cuando salta a la cancha es el jugador que más ganas le pone, puro corazón, pura fuerza. Si le ficharan los Grizzlies encajaría perfectamente en su idea de Grit&Grind. Tras un buen inicio las lesiones hicieron mella en los sorprendentes Lakers de coach Luke, enganchando una racha de 8 derrotas ¿lograrán recuperar el fantástico nivel que mostraron en los primeros 20 partidos? La aportación del banquillo, y por extensión de Nance, será clave para eso. Y otra cuestión que parece clara ¿le veremos en el concurso de mates machando con la camiseta de su padre, primer campeón del mismo, puesta? Parece un movimiento más que evidente.

  • Avery Bradley: Se esperaba mucho de estos Celtics en verano, tras el fichaje de Horford, pero están defraudando aunque se mantienen con una marca positiva de victorias. El que no defrauda un pelo es Avery Bradley, que está firmando la mejor temporada de su carrera: 18 puntos, un 42% de acierto desde el triple, bajando el culo y pegándose para estar en el Mejor Quinteto Defensivo pero, sobre todo, un promedio de 7.6 rebotes ¿no te parecen tantos? Piensa en su estatura, no llega al metro noventa. Los Celtics siguen necesitando un fichaje que les proporcione una estrella, pero no pueden decir que Brad Stevens no logre sacar lo mejor de sus chicos. La temporada de Bradley es buena muestra ello. ¿All-Star? En el Este es una posibilidad, desde luego.
  • Marc Gasol: Encara su novena temporada en la NBA, ha sido All-Star dos veces, otras tantas All-NBA, una vez defensor del año y una nominación en el segundo quinteto defensivo, previamente había firmado una de las temporadas más dominantes de la historia de la ACB y ha sido campeón del Mundo, de Europa y plata olímpica con la selección. Con 31 años todos sabíamos que Marc Gasol es un pivot inteligente, seguramente el mejor pasador desde su posición y toda una fuerza defensiva, una estrella del baloncesto mundial. ¿Era posible que a estas alturas nos sorprendiera? Pues sí, lo era. Tras una dura lesión que le dejó sin Juegos Olímpicos y sin jugar más de media temporada pasada no sólo ha recuperado su mejor nivel sino que además ha añadido el tiro de larga distancia a sus armas, anotando un 44% de sus intentos desde el triple… y no tira de pascuas en ramos sino que intenta más de 3 por partido. Tras la lesión de Conley, que se quedó tres semanas en el dique seco, supo destacarse como líder del equipo manteniendo al equipo con un balance positivo y llevándose un galardón de jugador de la semana. ¿Tercer All-star este año? La competencia es dura, pero no sería raro.

  • Dario Saric: Parecía que el croata llegaba a los Sixers para pintar poco a pesar de la lesión de Simmons, con Ilyasova cerrándole el paso y con la posibilidad de que Embiid o Noel jugaran minutos como cuatro junto a Okafor. Pero a pesar de que la irregularidad es la tónica y de intercalar grandes partidos con actuaciones muy flojas Saric está siendo uno de los mejores novatos de la temporada. Parece claro que su compañero Embiid será el novato del año, pero Dario quiere dejar claro que está en la NBA para quedarse y promedia 9.5 puntos y 5.7 rebotes, siendo uno de los rookies más destacables. Tiene que apretarse en defensa, tiene que conseguir ser más regular en sus apariciones y tiene que mejorar sus porcentajes en el tiro, pero hoy por hoy está en camino de ser un jugador valioso. Viendo la situación del equipo tal vez dar salida a Ilyasova y dejarle más minutos para que gane experiencia podría ser la mejor opción para que gane experiencia. Estará en el partido de rookies vs sophomores seguro.

Queda mucha temporada por delante ¿seguirán a este nivel? ¿bajarán? ¿subirán más? Yo seguiré con lupa la evolución de estos jugadores a lo largo de la campaña, seguro que dan alegrías a los amantes del basket.

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.

PHP: ¿Cómo saber si una variable existe?

Situación clásica en PHP: En una página tengo que mostar tal o cual resultado si una variable tiene un valor concreto, pero además existe la posibilidad de que dicha variable no exista. ¿Cómo evito que me salte un mensaje de error si esta viene vacía? Pues usando el método isset().

Un ejemplo

if (isset($_GET["id"])){
     //carga los datos asociados al id
}else{
     //no carga nada
}

Ya hace tiempo explicamos aquí la diferencia entre isset(), is_null() y empty().

Copiar ficheros a una carpeta propiedad de root en el entorno gráfico de Ubuntu o Elementary OS

El título es largo, sí, pero era lo que quería intentar en mi equipo: copiar unos ficheros de la carpeta Home a la carpeta /usr/share/games. Ok, podría hacerlo por línea de comandos, pero entonces no estaría escribiendo aquí. ¿Se puede hacer desde el entorno gráfico? Pues sí. Pulsas Alt+F2 para abrir el lanzador y allí tecleas gksu nautilus. Tan simple como eso, lanzas gksu nautilus, te pedirá contraseña, y tras insertarla ya puedes crear, mover o borrar ficheros de ahí en el entorno gráfico. Como siempre en estos casos hazlo con precaución, no borres lo que no debes.

Usando rel=»noopener» para evitar ataques crossdomain en páginas abiertas con target=»_blank»

Pues era un tema que desconocía hasta que lo vi ayer en el blog de Chema Alonso, pero por lo que veo lleva rulando al menos desde el mes de mayo. ¿De qué estoy hablando? Te comento con un ejemplo (aunque puedes leerlo mejor explicado en los links previos): supongamos que quieres que un link se abra en una nueva pestaña, así que le pones target=»_blank». Al hacerlo de esta forma la página que has abierto en la nueva pestaña, mediante el selector window.opener puede modificar cosas a base de Javascript en la página desde la que se abrió el enlace. La mayoría de navegadores modernos limitan las posibilidades de esto y bloquean muchas de las acciones invocadas desde la ventaja hija sobre la padre, pero lo que se han dejado sin proteger es que dicha ventana hija puede acceder a la propiedad window.opener.location, y de esta forma mandarnos a una página desde la que hacer un ataque de phising.

¿Solución? Bueno, si es un enlace basta con el modificador noopener y el noreferrer:

<a href="paginanueva.html" target="_blank" rel="noopener noreferrer"/>

El noreferrer es necesario porque Mozilla Firefox no soporta noopener.

¿Y qué pasa si abrimos la ventana mediante Javascript utilizando el método window.open()? Pues que nos encontramos la misma vulnerabilidad. ¿Cómo la solucionamos? Tal que así (copio este ejemplo):

var newWnd = window.open();
newWnd.opener = null;

Recuperando datos en Ubuntu con foremost

Una potente herramienta en línea de comandos para recuperar ficheros desde distintos sistemas: NTFS, fat, ext3, ext4, etc. Así podemos describir en una frase a foremost.

El primer paso con este software sería instalarlo mediante vía de comandos, por ejemplo mediante apt:

sudo apt-get install foremost

Una vez instalado nos toca proceder. Un punto a tener en cuenta es que no podemos recuperar los datos en el mismo dispositivo del que los estamos intentando recuperar, así que lo mejor será crear una carpeta en otro disco duro para volcar lo recuperado. Vamos a suponer, para nuestro ejemplo, que recuperamos datos de un USB llamado sdb y los guardaremos en el disco duro del equipo, que será el sda. En sda crearemos una carpeta que se llamará recuperado. Veamos ejemplos:

#El comando más básico es así:
sudo foremost -i /dev/sdb -o /sda/recuperado
#Tras el -i ponemos el dispositivo a recuperar.
#Tras el -o ponemos el destino de los archivos.
#Es posible recuperar datos también desde una imagen
#de disco.
#### Veamos más opciones ####
sudo foremost -w -i /dev/sdb -o /sda/recuperado
#Esta no recupera ficheros
#sino que extrae un listado de
#todo lo recuperable.
sudo foremost -t pdf -i /dev/sdb -o /sda/recuperado
#El parámetro -t permite
#definir un tipo de fichero
#y sólo recuperará los de ese tipo,
#en el ejmplo le pasamos pdf.

Como os decía arriba en los ejemplos, se puede recuperar sólo ficheros de un tipo concreto con -t. El listado de formatos de archivo recuperables es el siguiente: avi, bmp, cpp, doc, exe, gif, htm, jpg, mov, mpg, ole, pdf, png, rar, riff, wav, wmv o zip.

Evolución de la población en Ortigueira, el Ortegal y alrededores

Esto no pretende ni pretendió nunca ser un artículo serio y científico, sino que lo publico como mera curiosidad, no voy a ponerme a hacer un sesudo análisis demográfico. Lo digo por si alguien está tentado de comentarlo en los comentarios de la página.

Todo esto viene al caso porque hablaba con un amigo sobre que en los veranos de nuestra adolescencia había más ambientillo en la calles de nuestro pueblo, que por la noche era habitual que hubiera gente en los bares incluso entre semana. Argumentaba un tercero que eso no era así, sino que era un producto de nuestra mente, que recordábamos las cosas como mucho mejores de lo que realmente eran, que había un sesgo positivo en nuestros recuerdos y que además la perspectiva que teníamos como adolescentes de 15 años no es la misma que podemos tener ahora como adultos que pasados los 30 hemos visto más mundo. Y puede que tenga razón, pero yo estaba convencido de que antes había bastante más gente, así que me fui a Google Public Data (herramienta de la que hablaremos más adelante en otro artículo) a buscar datos sobre población por ayuntamientos para sacar de allí una gráfica que lo ilustrara.

La comarca del Ortegal, situada en el norte de la provincia de A Coruña, en Galicia, engloba los ayuntamientos de Ortigueira, Cariño, Mañón y Cerdido, que actualmente suman alrededor de 13.000 habitantes censados entre los cuatro. Además en la gráfica he añadido los cercanos ayuntamientos de As Somozas, Cedeira, Moeche y As Pontes de García Rodríguez. En general se aprecia un decrecimiento de la población en todos estos ayuntamientos desde 1996 hasta 2014, pero siendo el de Ortigueira el más acusado tanto en totales como en porcentaje.

Uno podría esperar que sería As Pontes quien mostaría la mayor caída total por ser la población de mayor tamaño, con 12664 habitantes en 1996 y 10634 en el censo de 2014 ha perdido 2030 habitantes en ese lapso de 18 años. Pero en ese mismo tiempo Ortigueira cae desde los 8893 de mediados de los 90 a los 5997 de 2014, 2896 habitantes menos, casi un 33% de población menos en 18 años. Es curioso el caso de Cedeira, que ese tiempo resiste bastante bien y sólo pierde 603 habitantes, pasando de 7750 a 7147, superando en población censada a Ortigueira en 2006 en unas pocas docenas de habitantes, hasta hacerlo en más de mil en 2014. Comprobando los datos del padrón de 2015 la tendencia parece haberse invertido y se ha registrado un crecimiento de la población ese último año.

Así que me quedo con que tenía razón: había más gente (un porcentaje significativo) cuando yo tenía 15 años (año 2000) que ahora. Y otro punto a tener en cuenta, que no se refleja en esta estadística, la población que sigue residiendo en esta zona cada vez está más envejecida.

Evolución Población Ortegal

La versión autoalojada de WordPress no me permite embeber directamente la gráfica de Google (creo, si lo permite de momento no se cómo), pero aquí está el enlace a la gráfica de la imagen de arriba. En él podréis ver los datos detallados año a año moviendo el ratón sobre las líneas.

Comarca do Ortegal
Cariño y ría de Ortigueira. Fotografía de Ramón Piñeiro.

En fin ¿causas de este decrecimiento? No he hecho ningún estudio profundo para mostrar un verdadero análisis, pero la falta de oportunidades laborales tiene todas las papeletas para ser la principal. Y no podemos obviar las malas comunicaciones de la comarca: transporte público cada vez más deficiente, con un FEVE casi desmantelado y cada vez con menos líneas de autobús, y carreteras sensiblemente mejorables que no invitan a coger el coche, coche que por otra parte casi cualquier habitante de la zona está obligado a tener.

Ría Ortigueira Capelada
Ría de Ortigueira desde la Capelada. Fotografía de Antonio Ramos Soto

Como ya decía al principio, no se trata de un artículo sesudo, sólo la visualización de la constatación estadística de un hecho que cualquier conocedor de la zona ya habría percibido. Pero me da pie para hablaros, como ya dije, de Google Public Data… en un artículo que caerá en estos días.

Cómo activar el bash de Ubuntu en Windows 10

Sí, has leído bien. En la actualización del primer aniversario de Windows 10 se incluye un programa llamado Bash-for-Windows, y sigue el supuesto enamoramiento de Nadella con Linux (que a este paso el siguiente Windows será un Linux con .NET preinstalado, cosas veredes Sancho). Este Bash-for-Windows, co-desarrollado junto a Canonical y basado en Ubuntu, permite correr de forma nativa algunas aplicaciones de Linux en Windows: no se trata de una máquina virtual, ni de un contenedor ni de una distribución de Linux completa, sino una aplicación que permite correr aplicaciones de Linux accediendo al sistema de ficheros de Windows. Ojo, sólo en Windows 10 de 64 bits, los usuarios de 32 bits ya no recibirán esta mejora.

Lo primero es activar el Modo Desarrollador, te vas a Configuración -> Actualizaciones y Seguridad -> Para Desarrolladores -> Modo Desarrollador. Puedes ver cómo hacerlo en este enlace si no lo ves claro con esa ruta.

Tras eso, y ya sea desde Panel de Control o desde el lanzador del Menú de Inicio, os vais a Activar o desactivar las características de Windows y allí buscais la opción de Windows Subsystem for Linux. La marcáis, dejáis que descargue todo lo necesario y que se reinicie el equipo.

WSL-Activando

Tras el reinicio abrimos la consola de comandos (cmd) en modo administrador y ejecutamos el comando bash. Una vez ejecutado por primera vez se pondrá a descargar todos los componentes necesario para instalar Bash on Ubutu on Windows.

Ejecutando Bash en Windows 10

Una vez instalado ¿qué podemos hacer con esta consola? Bueno, pues usarla para probar la funcionalidad básica de lenguajes de programación como Perl, Node/JS o Python, usar los comandos de la consola de Ubuntu como grep o awk, usar programas de línea de comandos como SSH, Emacs o Git… en fin, tendrás mucha de la funcionalidad de la consola Bash de Ubuntu en tu Windows 10.