Javascript: convertir Array en CSV

Vamos con un tip rápido de javascript ¿cómo convertimos un array en una cadena de valores separados por comas? Es bastante sencillo lograrlo, y así obtener un formato válido para crear un fichero CSV más adelante:

var sabbath = ['ozzy', 'iommi', 'bill', 'geezer'];

var sabbathCsv = sabbath.valueOf();

Si lo que queremos son comas como separador el método valueOf() ya nos hace el trabajo, pero ¿si queremos otro separador? Entonces recurriremos a join().

var icada = ['drogas', 'boni', 'alf', 'fer'];

var icadaCsv = icada.join("#");

En el ejemplo de arriba usará el caracter # como separador en lugar de las comas.

Anuncios

El Bandcamp de la Quincena: Billy Lobster – Boogie on the Fly (19/02/2017)

Calentita viene la entrega de esta semana de El Bandcamp de la Quincena, hace sólo dos semanas que fue publicado este trabajo. Emulando a la infanta fugitiva nos acercamos al área de Lisboa para paladear un poco de blues (bueno, ella al blues imagino que no va):

No sé si Billy Lobster es un fan fundamentalista de Bob Esponja o de las películas de Yorgos Lanthimos, o si su nombre viene de alguna historia de infancia o adolescencia que jamás conoceremos. De Billy Lobster solo se lo que nos cuenta y lo que se puede escuchar.

¿Qué nos cuenta? Pues que nació bajo el nombre de Pavel Racu en Moldavia, país del que marchó a los 17 años rumbo a Portugal. Que desde crío, cuando jugaba a hacer air guitar con una escoba, siempre quiso ser músico. Que de adolescente se contagió de la rockin’ pneumonia y la boogie woogie flu y jamás se ha curado de esa bendita infección. Y que este Boogie on the Fly se la ha guisado y comido casi integramente él solito, ya que Billy Lobster es un hombre y a la vez toda una banda: guitarra, voz y percusión, lo toca todito. Como Muchachito Bombo Infierno, pero molando (ese es el punto diferencial). Cuenta con un armonicista en algunos temas, João Luz, y en los controles ha estado Tito Carreno de los Menos Um Studios, que coproduce, mezcla, masteriza y toca el órgano en un tema, tema donde encontramos la voz gospel de Sandra Tess acercándonos al género espiritual. El arte de la portada ha sido cosa de Zé Pereira, un retrato en blanco y negro de trazos angulosos que os dejo aquí debajo:

Billy Lobster

¿Qué podemos escuchar? Un blues desnudo y clásico. El señor Langosta nos dice que sus primeras influencias fueron John Lee Hooker, Muddy Waters y Howling Wolf. Nada que discutirle, están muy presentes en la grabación. Añadiría el regusto más rocanrolero de Bo Diddley, incluso un punto del Billy Gibbons más rockero o de grupos modernos con deje retro como Moreland & Arbuckle o Seasick Steve. Podrías pensar que siendo un solo músico la grabación sonaría vacía, pero con su voz y cargándole bien a la distorsión en su guitarra logra llenar la grabación, hacer mucho con poco es el espíritu primitivo de un bluesman, como el gran Son House. En la instrumental Tuna Fish esto es tan marcado que llega a sonar casi a un stoner-blues digno de Clutch.

El Este conoce al Oeste, la música no conoce fronteras. Un músico nacido en Moldavia, afincado en Portugal pero que ha absorbido como una esponja el sonido de gente llegada de Texas, Tennessee, Nashville, Nueva Orleans o Chicago nos presenta un disco para quemar rueda, para hacer kilómetros en la carretera, para comer cangrejos de río, para remojar el gaznate con bourbon o para cualquier otra actividad que se asocie tradicionalmente con los comportamientos de un bluesman.

Resumiendo, este Boogie On the Fly de Billy Lobster es cosa fina. Una escucha o dos se le dan de buena gana.

 

 

 

Siete comandos de Linux básicos para la configuración de redes

Vamos con un articulillo técnico que os había prometido. Recopilamos una serie de comandos de Linux básicos para el trabajo y la configuración de redes. Nada complicado en exceso pero herramientas básicas y funcionales que son de uso habitual para quien ande trasteando en temas de redes.

  1. Ping: Envía un mensaje ICMP incrustado en un paquete IP, comprobando la conectividad entre dos nodos. El comando se ejecuta hasta que pulsemos las teclas Ctrl + c. ping ejemplo
  2. Netstat:  Es una herramienta que nos muestra las conexiones activas de un equipo. Esta herramienta acepta muchos parámetros: -r muestra la tabla de enrutamiento, netstat -r-p nos saca el nombre del programa para cada socket,netstat -p -a todos los puertos a la escuchanetstat -a
  3. Tcpdump: Es una herramienta que permite monitorizar el tráfico de red, mostrando en tiempo real los paquetes transmitidos y recibidos.tcpdump
  4. Tracepath: Traza los nodos a través de los que viajan nuestros paquetes en su camino hacia el destino que le definamos. tracepath
  5. Route: Es una herramienta que nos permite manipular las tablas de enrutamiento del sistema.
    #añadir ruta a la tabla
    route add -net 8.8.8.8/24 gw 192.168.100.1
    #eliminar ruta de la tabla
    route del -net 8.8.8.8/24 gw 192.168.100.1
    #definir puerta de enlace por defecto
    route add default gw 192.168.100.1
    
  6. Dhclient: Si lo ejecutamos con -r y con permisos lo que hace es “liberar” nuestra IP y solicitar otra al servidor DHCP.dhclient
  7. Ifconfig: Configuración de interfaz. Nos permite configurar o desplegar diversos parámetros de las interfaces de red como la máscara o la dirección IP. Acepta varios parámetros, y si lo ejecutamos sin pasarle ninguno nos dará información sobre las distintas interfaces. Los más usados son:
    • up: Marca la interfaz como disponible. Por ejemplo ifconfig eth0 up.
    • down: Marca la interfaz como no disponible. Por ejemplo ifconfig eth0 down.
    • dirección ip: Si ponemos una ip esta le será asignada a esa interfaz, teniendo de esta forma una ip estática (para DHCP está Dhclient). Por ejemplo ifconfig eth0 192.168.100.2.
    • netmask: Para definir una máscara de red. Por ejemplo ifconfig eth0 netmask 255.255.255.0 .
    • broadcast: Nos permite definir una ip como dirección de difusión. Por ejemplo sudo ifconfig etho broadcast 172.16.25.98.
    • promisc: Pone la interfaz en modo promiscuo, de forma que captura todos los paquetes, vayan dirigidos a ella o no. Por ejemplo ifconfig eth0 promisc.

¿Quién fue Charles Oakley?

Hola, joven fan de la NBA. Tú que has llegado al deporte de la canasta en los tiempos del baloncesto casi sin contacto y de los triples a tutiplén, en la era de las estadísticas avanzadas y del juego cada vez más centrado en funciones que en posiciones, tú joven fan seguro que conoces a Charles Oakley como “el tío que el otro día intentó pegarle al dueño de los Knicks“.

Y luego te habrá sorprendido seguramente ver a muchos jugadores importantes de la NBA dándole apoyo, y a todo el Garden poniéndose de su parte y coreando su nombre ayer (10 de febrero) en el partido contra los Nuggets.

Te estarás preguntando “¿Quién es este Charles Oakley y por qué le quieren tanto?“. Pues aquí tienes a un treintañero que vivió el basket de hormigón de mediados de los 90 que te lo cuenta. Vamos con una retrospectiva de su carrera:

Oakley nació en Cleveland en 1963 y creció en esa ciudad, y creció bastante hasta ser un chaval que medía 2.03 y pesaba más de 110 kilos. Su talento para el baloncesto le valió una beca para estudiar en la universidad de Virginia Union, cuna de otro fiero currante y defensor como fue “BigBen Wallace, donde completó su ciclo de cuatro años con unos números destacados: 20 puntos y 14 rebotes de media durante sus cuatro años, firmando en su última temporada 24 puntos y 17 rebotes. Esto le valió una buena posición en el Draft de 1985, donde el equipo de su ciudad natal, los Cavaliers, le eligieron con el número 9 para luego mandarle a unos Bulls donde se convertiría en mano derecha de un joven Michael Jordan. Fue elegido en el mejor quinteto de Rookies de su año y promedió 12 puntos y 11 rebotes en las tres temporadas que pasó en Chicago.

En verano de 1988 los Bulls le envían a los Knicks a cambio del pivot Bill Cartwright. En la Gran Manzana se convertirá en parte de la columna vertebral del equipo donde el estrellato recae en el pivot Pat Ewing y el escolta John Starks: 10 temporadas se pasará allí, el grueso de su carrera.  Durante esa década firmará unos números de más de 10 puntos, 10 rebotes, 2 asistencias y un robo de balón. Pero lo más imporante en Oakley no eran sus números, sino su fiereza, su entrega en defensa, su trabajo: jugaba duro y eso le hacía ser un favorito de la grada. Con el 34 a su espalda formaba una pareja interior terrorífica junto al que fuera número 1 de su draft: Pat Ewing. Durante su estancia los Knicks eran uno de los equipos más competitivos del este: un fijo en los playoffs que llegaron a disputar la final de la NBA en 1994 contra los Rockets de Olajuwon, nada que ver con la chufla que llevan siendo en estos dosmiles. Oakley fue elegido para disputar el All-Star de 1994, temporada en la que además terminó seleccionado en el Mejor Quinteto Defensivo de la NBA, consiguiendo en 1998 otra nominación al segundo equipo. Tras esa temporada, con 34 años, los Knicks le mandarían a Toronto a cambio del “samuraiCamby.

Se mantendría activo hasta los 40, jugando tres años en Toronto y dándose un curioso tour nostálgico en sus tres últimas temporadas: primero un retorno a los Bulls, luego una reunión con Michael Jordan en los Wizards y finalmente un puñado de partidos en los Rockets que le alejaron del anillo una década antes para decir adiós al baloncesto.

Ahora la vieja leyenda de los Knicks ha sido expulsado de por vida del pabellón donde disfrutó de sus mayores tardes de gloria, donde bregó con tantos rivales. Ha dicho Dolan, el controvertido propietario de los Knicks, que Oakley “Tiene un problema con la ira“. ¿Es esto cierto? No podemos obviar que en sus años como jugador era un tipo muy duro, y que protagonizó varias peleas en la cancha:

Su carácter es responsable de sus luces y sus sombras. Lo que le hacía un jugador importante era esa agresividad, esa intensidad, esa dureza. Pero ese carácter le hacía perder el control y a veces cruzar la línea de la agresión. ¿Estuvo bien su agresión a Dolan? No. ¿Es inteligente la actitud de la directiva de los Knicks de dejar a una leyenda del equipo expulsada del pabellón de por vida? No. En los últimos años el equipo es un desastre, New York alardea de ser “la ciudad del baloncesto” pero llevan más de 40 años sin ganar un título. En los tiempos de Oakley al menos competían, pero ahora son un camelo, cada año un nuevo proyecto y cada año una nueva decepción. La gente añora los tiempos en los que los jugadores se dejaban la piel, y la directiva ahora carga contra uno de los clásicos de aquella época.

El culebrón Knicks sigue temporada tras temporada para desesperación de sus fans y regocijo de trolls.

 

El Bandcamp de la quincena: Master Boot Record – C:\>CHKDSK /F (05/02/2017)

¿He encontrado a la banda más geek del planeta? Puede que sí o puede que no. Esta entrega de El Bandcamp de la Quincena se sumerge en el mundo del llamado chiptune.

Y es que Master Boot Record dice ser, en su perfil de Bandcamp, un i486DX a 33MHz que ha tomado conciencia propia e intenta procesador con su sintetizador una fusión de heavy metal y música clásica sinfónica. Y aunque yo crea que en algún momento las máquinas alcanzarán la singularidad no creo que eso esté al alcance de un querido 80486, así que rascando un poco más por Google encontré alguna cosilla más: Según Metal Archives la mente tras este proyecto es un multinstrumentista italiano de 37 años llamado Vittorio D’Amore, pero que responde al seudónimo de Victor Love. El músico itálico ha estado vinculado a múltiples proyectos además de al que hoy nos ocupa: Dope Stars Inc, Hacking the Wave o My Sixth Shadow.

¿Por qué me llamó la atención este proyecto? Bueno, esto es un blog donde principalmente se ha hablado de tecnologías informáticas, música y baloncesto (y algo de cine y comics, ok) así que encontrarme a un grupo con tantas referencias a MS-DOS me obligaba a escucharlo. ¿Y qué nos encontramos? Pues lo esperable en la descripción: baterías de maquinillo y sintetizadores tipo banda sonora de Doom o Duke Nukem. Y a base de esos sintetizadores con regusto a videojuego de principios de los 90 busca emular agresivas bases rítmicas con estructuras metaleras para luego por encima de ellas desplegar el grueso melódico de la composición. Tal vez lo de sinfónico sea exagerado, pero sí se aprecian guiños evidentes e influencias del heavy metal clásico (King Diamond, Iron Maiden), del industrial (Skinny Puppy, KMFDM) o del black metal (el primer tema me tiene dejes muy a Emperor) en este c:\>CHKDSK /F. Y las referencias informáticas no se quedan sólo en el nombre de la banda y del disco, todos los temas están nombrados como si fueran ficheros de un sistema informático.

Master Boot Record

Pero si algo enamora es la presentación de la ediciones físicas. La edición en cassette te llevará más atrás en el tiempo, a los años de los juegos en cinta. Y la edición en vinilo imita un disquette de 5.25″, uno de aquellos viejos “discos de cartulina“.

También hay que destacar que el último tema, VIRTUAVERSE.GIF, es la banda sonora de un videojuego con el mismo nombre.

¿Chiptune? ¿Synthwave? Más allá de etiquetas gustará a los nostálgicos de las bandas sonoras de los videojuegos de 16 bits. Si eras fan del Doom (el videojuego, no el Doom metal) es muy posible que este trabajo te encandile. No vengas buscando un disco de metal o de rock, no hay guitarras, bajos ni baterías, todo está hecho con máquinas, es electrónica pura y dura pero está lejos del rollo txuntero. Master Boot Record es un proyecto tremendamente geek, una idea muy curiosa que se merece una buena escucha con los oídos y la mente muy abiertos.

 

Javascript: convertir una string en un número.

La función parseFloat() de Javascript nos permite recoger un dato de tipo string y convertirlo en un número con decimales, mientras que la función parseInt() nos devuelve un entero. ¿Así de simple? Sí, pero con matices. Vamos a profundizar un poco:

En el caso de parseInt() se trata de una función que recibe dos valores: el primero es obligatorio y es la cadena que queremos convertir a entero, el segundo sería un entero entre 2 y 36 para definir la base en que queremos que esté representado el entero devuelto, y es un parámetro opcional que por defecto tomará el valor 10 (base decimal). En implementaciones en navegadores antiguos (por ejemplo IE8) si el número empieza por 0 lo devolverá en base octal, así que ojo. Con los navegadores modernos ya no pasa, pero es importante recordarlo. Si le pasamos una cadena con espacios los obviará y devolverá el número (si hay varios números devolverá el primero que se encuentre). Si le pasamos una cadena con letras y números dependerá de la posición del número: si este está al inicio entonces devolverá el número hasta que encuentre un caracter extraño. Si empieza por letras devolverá un valor NaN. Ejemplos:

parseInt("10"); //devuelve 10
parseInt("10 años"); //devuelve 10
parseInt("10 54"); //devuelve 10
parseInt("10.50"); //devuelve 10
parseInt("casi 10"); //devuelve NaN
parseInt("10",16); //devuelve 16

Si quieres evitar problemas y que te devuelva un 0 cuando el resultado sea NaN ya te lo contamos en su día por aquí.

En el caso de parseFloat() la función sólo recibe la cadena que debe convertir a número decimal. Al igual que parseInt() si recibe una cadena con espacios los ignorará para devolver el número, y si recibe una cadena con caracteres actuará también igual que esa función: si este está al inicio entonces devolverá el número hasta que encuentre un caracter extraño. Si empieza por letras devolverá un valor NaN. En este caso ojo al formato numérico, sólo acepta el anglosajón. Es decir, el separador decimal tiene que ser un punto, interpretará la una coma como un caracter extraño.

parseFloat("10"); //devuelve 10
parseFloat("10.5 años"); //devuelve 10.5
parseFloat("10 54"); //devuelve 10
parseFloat("10.50"); //devuelve 10.50
parseFloat("casi 10.4"); //devuelve NaN
parseFloat("1.000,33"); //devuelve 1
parseFloat("10,50"); //devuelve 10

Entonces ¿qué hago si tengo una cadena donde los decimales vienen separados por comas y los miles marcados con puntos? Pues usando la función replace(). Vamos con un ejemplo:

var strEx = "1.000,33";
//primer paso: fuera puntos
strEx = strEx.replace(".","");
//cambiamos la coma por un punto
strEx = strEx.replace(",",".");
//listo
var numFinal = parseFloat(strEx);

Podría ser útil tener una función creada ya para realizar esta operación de conversión.

Y hasta aquí con esta entrada de Javascript básico.

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.