MySQL – Seleccionando la base de datos por defecto

En Creación de nuestra primera base de datos en MySQL aprendimos a crear bases de datos, contenedores en los que almacenaríamos después las tablas y otras estructuras características. Para ello disponíamos, como vimos, del comando CREATE DATABASE, seguido del nombre de la base de datos de nueva creación.

CREATE DATABASE biblioteca;

Con este comando creamos la base de datos biblioteca, que íbamos a destinar al almacenaje de todo lo relacionado con nuestra colección de libros.

Presentamos también el comando SHOW DATABASES, que nos mostraba una lista con todas las bases de datos existentes.

Estamos pues, en condiciones de empezar a diseñar la estructura de la primera tabla. Pero antes es necesario realizar un paso previo: seleccionar cuál es la base de datos por defecto.

En una situación típica, SHOW DATABASES nos mostrará unas cuantas bases de datos. A la hora de crear objetos, como las tablas, introducir datos, o realizar consultas, deberemos tener muy claro sobre qué base de datos, de todas las disponibles, vamos a realizar esas operaciones.

Para ello, elegimos una base de datos por defecto con el comando USE.

mysql> USE biblioteca;
Database changed

A partir de este momento, todas las operaciones que realicemos serán sobre biblioteca.

A título de ejemplo, veamos las tablas existentes con el comando SHOW TABLES:

mysql> SHOW TABLES;
Empty set (0.00 sec)

No hay nada, como era de esperar, pues aún no hemos creado ninguna tabla.

Cuando te canses de manipular en biblioteca, puedes dirigir las miras hacia otra base de datos empleando el mismo comando USE. Prueba a elegir ahora una de las bases de datos del sistema, como information_schema, que seguro que está más repleta de tablas.

mysql> USE information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

Hemos conmutado a la base de datos information_schema. Todas las operaciones que realicemos ahora serán sobre ella, en vez de en biblioteca. Mostremos las tablas existentes:

mysql> SHOW TABLES;
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| CHARACTER_SETS                        |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS                               |
| COLUMN_PRIVILEGES                     |
| ENGINES                               |
| EVENTS                                |
| FILES                                 |
| GLOBAL_STATUS                         |
| GLOBAL_VARIABLES                      |
| KEY_COLUMN_USAGE                      |
| PARAMETERS                            |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| PROFILING                             |
| REFERENTIAL_CONSTRAINTS               |
| ROUTINES                              |
| SCHEMATA                              |
| SCHEMA_PRIVILEGES                     |
| SESSION_STATUS                        |
| SESSION_VARIABLES                     |
| STATISTICS                            |
| TABLES                                |
| TABLESPACES                           |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TRIGGERS                              |
| USER_PRIVILEGES                       |
| VIEWS                                 |
| INNODB_CMP_RESET                      |
| INNODB_TRX                            |
| INNODB_CMPMEM_RESET                   |
| INNODB_LOCK_WAITS                     |
| INNODB_CMPMEM                         |
| INNODB_CMP                            |
| INNODB_LOCKS                          |
+---------------------------------------+
37 rows in set (0.00 sec)

Conmutemos ahora a la base de datos discos:

mysql> USE discos;
ERROR 1049 (42000): Unknown database 'discos'

¿Qué esperabas? No puedes usar una base de datos inexistente. Deberías haberla creado previamente con CREATE DATABASE discos;

Más adelante veremos que, a pesar de que hayamos elegido una base de datos concreta con USE, existen mecanismos que nos permiten referenciar objetos de otra diferente. Pero por el momento quédate con la idea fundamental de este artículo: antes de empezar a operar sobre una base de datos es necesario seleccionarla con USE.

Javier Montero Gabarró


MySQL – Seleccionando la base de datos por defecto


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

LaTeX – Capítulo 26: Radicales

Vamos a dar hoy un impulso radical al modo matemático de LaTeX…

Generar radicales es algo tremendamente sencillo empleando el comando \sqrt, al que le facilitaremos dos argumentos: el índice y el radicando. El índice es opcional; cuando no se indica se supone que estamos haciendo una raíz cuadrada. El radicando, lo «de dentro» de la raíz, es obligatorio.

Ya sabes que los argumentos obligatorios se indican en LaTeX entre llaves {}, mientras que los opcionales van entre corchetes [].

De este modo, la sintaxis del comando de radicación es:

\sqrt[indice]{radicando}

No olvides que los argumentos opcionales se escriben antes que los obligatorios.

Veamos algunos ejemplos:

  \sqrt{2}\cdot\sqrt{3}=\sqrt{6}

\[
\sqrt{2}\cdot\sqrt{3}=\sqrt{6}
\]

Fíjate cómo he usado el comando \cdot para indicar un punto de multiplicación centrado.

  \sqrt[3]{x^{5}}=x\sqrt[3]{x^{2}}

\[
\sqrt[3]{x^{5}}=x\sqrt[3]{x^{2}}
\]

Aquí hemos combinado las técnicas de radicación con las de potenciación.

El comando \sqrt tiene la bondad de saber adaptar el tamaño de la raíz al contexto adecuado, haciendo que su tamaño se muestre correctamente en función del radicando. Obsérvalo en este otro ejemplo:

  f(x,y)=\sqrt{\frac{x+y}{x-y}}

\[
f(x,y)=\sqrt{\frac{x+y}{x-y}}
\]

Tremendamente fácil y radical

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/04/latex-capitulo-26-radicales/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Llegó la hora de Precise Pangolin, Ubuntu 12.04 LTS

Después de unos cuantos días en la cuenta atrás, ya está disponible, al fin, la nueva versión Long Term Support de Ubuntu, Precise Pangolin, Ubuntu 12.04.

Si ya eres usuario de Ubuntu 11.10, no necesitas reinstalar el sistema operativo para disponer de la última versión. La forma más sencilla de actualizarte es directamente desde el Gestor de Actualizaciones. Además de las actualizaciones típicas para instalar encontrarás un nuevo botón que te permitirá hacer un upgrade a la versión 12.04.

Eso sí, tendrás que tener un poco de paciencia, pues deberán descargarse de la red más de mil nuevos paquetes. El proceso de instalación se ocupará de eliminar también todos los paquetes obsoletos.

He incluido este artículo, además, en las categorías MuseScore, Python y MySQL, pues la instalación de Ubuntu 12.04 actualiza las versiones de estos programas respecto a las que estaban disponibles en el Centro de Software de Ubuntu durante la versión 11.10. Hace poco escribí en el blog cómo instalar estas aplicaciones en Ubuntu; ha llegado el momento de actualizarlas.

Concretamente, las nuevas versiones que se instalan son:

– MuseScore 1.2
– MySQL server 5.5.22
– Python 3.2.3

Si estás siguiendo alguna de estas series desde Ubuntu mi consejo es que te actualices haciendo un upgrade a Precise Pangolin cuanto antes (si aún no lo has hecho).

Las versiones LTS (Long Term Support) de Ubuntu están pensadas para todos aquellos que no deseen actualizar sus sistemas operativos cada seis meses, que es el ciclo habitual en el que Canonical publica nuevas versiones. Aparece una nueva versión LTS cada dos años y desde Precise Pangolin el soporte se ha extendido hasta 5 años (tanto en la versión Desktop como en la Server).

Apenas me ha dado tiempo a descubrir los nuevos cambios, como el tan esperado HUD, pues tengo el sistema recién instalado.

Promete ser una experiencia apasionante…

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/04/llego-la-hora-de-precise-pangolin-ubuntu-12-04-lts/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Python – Capítulo 32: Funciones que devuelven varios valores

Python es un lenguaje, cuanto menos, curioso. Acostumbrado a otros lenguajes de programación, estudiar Python ha sido algo que nunca ha estado exento de artificiosas sorpresas. Estoy seguro de que muchos lo adoramos por esa originalidad, esa personalidad propia que lo hace tan especial.

Recuerdo, por ejemplo, cuando me encontré por primera vez con esta sorprendente sentencia:

x,y = y,x

Esta simple línea intercambia los valores de las variables x e y sin necesidad de recurrir a una tercera variable temporal. Reconozco que me dejó un poco descuadrado.

Verifícalo,

>>> x=1
>>> y=2
>>> x,y=y,x
>>> x
2
>>> y
1

O cuando me encontré con una función que devolvía varios valores…

Por ejemplo, diseñemos una función que tome dos argumentos y calcule el cociente y el resto de la división entera del primero entre el segundo:

>>> def desguazar(dividendo, divisor):
  cociente = dividendo//divisor
  resto = dividendo%divisor
  return cociente,resto

Observa como utilizo el operador // para el cociente de la división entera y % para el cálculo del resto.

cociente = dividendo//divisor
resto = dividendo%divisor

Hasta ahí bien, pero la línea en que devuelvo el resultado al exterior parece desafiar a toda lógica:

return cociente,resto

¿Qué es esto, una función que devuelve dos valores? ¿Cómo utilizo esto en el exterior?

Mira qué sencillo:

>>> x,y = desguazar(14,4)
>>> x
3
>>> y
2

Sorprendente.

No fue hasta que me presentaron las tuplas cuando ese misterio comenzó a desentrañarse.

Una función, propiamente hablando, sólo puede devolver un objeto, pero ese objeto puede estar compuesto de otros objetos más simples. Las listas o las tuplas son ejemplos de objetos compuestos.

¿Recuerdas cuando dijimos que la forma de definir una tupla era simplemente separar cada valor entre comas? En el artículo comentamos también que el uso de paréntesis era opcional y sólo era forzosamente exigido en caso de que la construcción se prestara a confusión.

Cuando hacemos algo como

return cociente,resto

lo que estamos haciendo, en realidad, es empaquetar las variables cociente y resto en una tupla. Quizás no habría tenido un efecto visual tan sorprendente si lo hubiéramos escrito así:

return (cociente,resto)

Es exactamente lo mismo, pero ahora resulta más evidente que se trata de una tupla.

Ahora si podemos comprender esto claramente ya:

>>> x,y = desguazar(14,4)
>>> x
3
>>> y
2

La función desguazar nos devuelve una tupla que asignamos a otra tupla, la formada por las variables x e y separadas entre comas (que ya sabes que podríamos haber rodeado entre paréntesis). Observa ahora el fenómemo contrario de desempaquetado.

Si eres un escéptico y no te crees que lo que devuelve return sea una tupla, prueba a ejecutar la función en IDLE:

>>> desguazar(17,3)
(5, 2)

Es una tupla: observa como IDLE muestra la salida de una tupla empleando paréntesis, aunque sean opcionales en su creación.

El empaquetado y desempaquetado de secuencias es sólo uno de los artificios mágicos que tiene Python, pero aún hay muchos más. ¿Te animas a descubrirlos?

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/04/python-capitulo-32-funciones-que-devuelven-varios-valores/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Construcción de acordes: Tabla de referencia

Vamos a dedicar un artículo especial a resumir todas las fórmulas presentadas en la serie Construcción de acordes. Aún quedan, desde luego, muchos por tratar, así que estamos ante un artículo dinámico que iré actualizando conforme vaya explicando nuevos tipos de acordes.

La finalidad de esta serie es saber calcular las notas que constituyen cualquier tipo de acorde sobre cualquier fundamental. No explica cómo hay que poner los dedos sobre la guitarra para montarlos (algo que se abordará en otra serie), aunque su deducción será sencilla una vez conozcamos las notas concretas. Todo músico debería poseer esa habilidad (podemos perdonar a los percusionistas, aunque también es recomendable para ellos).

En el primer artículo se explica la metodología empleada para el cálculo de las notas, basada en la fórmula de cada acorde en relación a la escala mayor.

En la Tabla de Referencia que figura a continuación, junto al nombre del acorde se indica su fórmula, un ejemplo partiendo de Do como nota fundamental y su cifrado más común. Haciendo clic sobre el nombre se cargará la página en la que fue presentado.

Acorde Fórmula Ejemplo en DO Cifrado típico
Acorde de quinta / Power Chord 1 – 5 C – G C5
Mayor 1 – 3 – 5 C – E – G C
Menor 1 – b3 – 5 C – Eb – G Cm, Cmin, C-
Aumentado 1 – 3 – #5 C – E – G# C+, Caug
Disminuido 1 – b3 – b5 C – Eb – Gb Cdim, C°
Cuarta suspendida 1 – 4 – 5 C – F – G Csus4
Segunda suspendida 1 – 2 – 5 C – D – G Csus2
Séptima 1 – 3 – 5 – b7 C – E – G – Bb C7
Séptima mayor 1 – 3 – 5 – 7 C – E – G – B C7M, Cmaj7, CΔ
Sexta 1 – 3 – 5 – 6 C – E – G – A C6
Menor sexta 1 – b3 – 5 – 6 C – Eb – G – A Cm6
Menor séptima 1 – b3 – 5 – b7 C – Eb – G – Bb Cm7
Menor séptima quinta bemol (semidisminuido) 1 – b3 – b5 – b7 C – Eb – Gb – Bb Cm7(b5), C∅
Séptima disminuido 1 – b3 – b5 – 6 C – Eb – Gb – A Cdim7, C°, C°7
Novena añadida 1 – 3 – 5 – 9 C – E – G – D Cadd9
Menor con séptima mayor 1 – b3 – 5 – 7 C – Eb – G – B Cm(7M)
Séptima mayor con quinta aumentada 1 – 3 – 5# – 7 C – E – G# – B C7M(#5), C+(7M), Caug(7M)
Séptima con quinta aumentada 1 – 3 – 5# – b7 C – E – G# – Bb C7(#5), C+7, Caug7, C7(+5)
Séptima con quinta disminuida 1 – 3 – b5 – b7 C – E – Gb – Bb C7(b5)
Séptima mayor con novena 1 – 3 – 5 – 7 – 9 C – E – G – B – D C7M(9), Cmaj7(9), Cmaj9, C9M
Séptima con novena 1 – 3 – 5 – b7 – 9 C – E – G – Bb – D C7(9), C9
Menor séptima con novena 1 – b3 – 5 – b7 – 9 C – Eb – G – Bb – D Cm7(9), Cm9
Séptima con novena aumentada 1 – 3 – 5 – b7 – #9 C – E – G – Bb – D# C7(#9)
Séptima con novena menor 1 – 3 – 5 – b7 – b9 C – E – G – Bb – Db C7(b9)
Sexta con novena 1 – 3 – 5 – 6 – 9 C – E – G – A – D C6/9, C6(9), C6add9
Séptima mayor con novena y oncena 1 – 3 – 5 – 7 – 9 – 11 C – E – G – B – D – F Cmaj7(9)(11), Cmaj11
Séptima mayor con novena y oncena aumentada 1 – 3 – 5 – 7 – 9 – #11 C – E – G – B – D – F# Cmaj7(9)(#11)
Menor séptima con novena y oncena 1 – b3 – 5 – b7 – 9 – 11 C – Eb – G – Bb – D – F Cm7(9)(11), Cm11
Séptima con novena y oncena / Oncena de dominante 1 – 3 – 5 – b7 – 9 – 11 C – E – G – Bb – D – F C11, C7(9)(11)

Recuerda: no pierdas de vista esta tabla, pues irá creciendo a medida que un nuevo acorde sea presentado en la serie.

Javier Montero Gabarró


Fecha de última revisión: 10 de agosto de 2014


Construcción de acordes: Tabla de referencia


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Creación de nuestra primera base de datos en MySQL

En la anterior entrega de la serie dimos los primeros pasos firmes en el mundo de MySQL y aprendimos a iniciar y cerrar una sesión contra el servidor. Hoy, ya con más confianza, crearemos nuestra primera base de datos.

Si tienes cierto conocimiento sobre bases de datos relacionales (aunque sea gracias a Access) ya sabrás que una base de datos es un contenedor en el que almacenamos información relacionada y organizada en una serie de estructuras que son las tablas. Antes de que diseñemos las tablas en sí, es preciso que creemos ese contenedor.

Supongamos que deseamos organizar la biblioteca de casa. Queremos tener registro de todos nuestros libros y de todo lo que sucede con ellos. Deseamos poder efectuar búsquedas por autor o por categorías, saber su ubicación exacta, tener un control de los préstamos, o cualquier otra información que nos pudiera ser útil. El primer paso es crear la base de datos, ese contenedor que almacenará toda esa información.

Inicia sesión en MySQL tal como explicamos en el artículo anterior. Si todo va bien, deberás tener a tu disposición el prompt de MySQL.

mysql>

Para crear una base de datos SQL dispone del comando CREATE DATABASE, seguido por el nombre de la base de datos:

mysql> CREATE DATABASE biblioteca;
Query OK, 1 row affected (0.00 sec)

La segunda línea nos confirma que todo ha ido correctamente y nos devuelve incluso el tiempo que ha tardado en realizar la operación.

No es necesario escribir CREATE DATABASE con letras mayúsculas, pero hacerlo es un convenio común adoptado por todos los programadores SQL, diferenciando así de un vistazo, el comando del argumento. Si hubieses escrito create database, en su lugar, el resultado habría sido el mismo.

Sin embargo, mucho cuidado al escribir biblioteca. Dependiendo del sistema operativo que utilices, será sensible a mayúsculas o no. En Windows daría igual escribir BIBLIOTECA que biblioteca, pero en Linux se trataría de bases de datos diferentes.

Observa también el punto y coma con el el que finalizamos el comando. Si por algo se te olvida, no te preocupes, tendrás ocasión de introducirlo en la siguiente línea:

mysql> CREATE DATABASE biblioteca
    -> ;
Query OK, 1 row affected (0.00 sec)

A modo de ejemplo, vamos a crear una segunda base de datos para almacenar nuestros contactos personales:

mysql> CREATE DATABASE contactos;
Query OK, 1 row affected (0.00 sec)

El comando SHOW DATABASES nos devuelve un listado con todas las bases de datos existentes. Veámoslo en acción:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| biblioteca         |
| contactos          |
| mysql              |
+--------------------+
4 rows in set (0.00 sec)

Además de las bases de datos biblioteca y contactos nos encontramos con otras dos que han sido creadas por el sistema.

Vamos a eliminar ahora la base de datos contactos. El comando SQL que nos permite realizar esto es DROP DATABASE:

mysql> DROP DATABASE contactos;
Query OK, 0 rows affected (0.00 sec)

Comprobemos que ha desaparecido del listado:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| biblioteca         |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

Fin de la excursión. Desconéctate del servidor con

mysql> exit
Bye

exit es un ejemplo de comando que no requiere punto y coma al final.

Ya hemos creado nuestra primera base de datos, biblioteca, contenedor en el que almacenaremos todos los objetos relacionados con nuestra colección de libros. Ya casi estamos en condiciones de crear las tablas, pero antes será necesario un paso previo…

Javier Montero Gabarró


Fecha de la última revisión: 30 de abril de 2012


Creación de nuestra primera base de datos en MySQL


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

MuseScore #20: A veces oigo voces – II

En A veces oigo voces – I mostramos el modo de introducir dos voces en MuseScore. Fue grato comprobar cómo se cumplían las recomendaciones de escritura polifónica, según las cuales las plicas de la voz superior deben dirigirse hacia arriba, mientras que las de la voz inferior deben hacerlo hacia abajo, incluso en el caso de que se produzca un cruce de ambas.

Agregar más voces, aunque tal vez pueda resultar algo caótico, no debe suponer ningún misterio. Si observas la barra de introducción de notas, te darás cuenta de que MuseScore te permite introducir hasta cuatro voces, cada una asociada a su propio color.

¿Cómo se dirigen las plicas en estos casos?

Por defecto se mantiene la alternancia de sentidos; es decir, las voces 1 y 3 presentan las plicas hacia arriba, mientras que la 2 y la 4 lo hacen hacia abajo.

Pero este comportamiento es configurable y esa configuración va a ser el plato fuerte de hoy, pues nos va a servir de introducción a los estilos en MuseScore.

El aspecto final de cualquier fichero en MuseScore viene determinado por un estilo, que no es más que una colección de parámetros configurables que determinan su presentación. Hay parámetros para controlar la distancia entre pentagramas, mostrar «alas» en las barras de repetición o para precisar cuánta separación debe existir entre el puntillo y la cabeza de la nota.

Como tal vez puedas imaginar, los hay también que dictan hacia dónde deben apuntar las plicas en la escritura polifónica.

Tienes a tu disposición todos los parámetros de configuración de estilo dentro del menú Estilo, agrupados en dos grandes categorías:

– El Estilo General
– El Estilo del Texto

Para acceder a la configuración de la dirección de las plicas, haz clic en

Estilo | Editar el Estilo General

En el panel de la izquierda tienes los distintos grupos de parámetros. Haz clic sobre el último, Voces, y obtendrás la siguiente pantalla (haz clic sobre la imagen si necesitas ampliarla):

Observa como MuseScore te permite la opción de personalizar la dirección de las plicas de cada voz a tu gusto.

Por ejemplo, fíjate en estas dos voces de acuerdo al estilo por defecto:

Y ahora modificando la dirección de la plica de la voz inferior:

Hay algo importante que debes saber sobre los estilos: están asociados a cada fichero musescore individual. Cuando guardas una partitura en disco duro, con ella estás salvando también todas las modificaciones de estilo que hayas hecho.

Esto implica que, cada vez que crees un fichero nuevo, volverá a aparecerte con todo el estilo por defecto. Ya veremos, en su día, la forma de poder elegir determinadas configuraciones de estilo favoritas, pero por hoy ya ha sido suficiente…

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/04/musescore-20-a-veces-oigo-voces-ii/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Carrera Popular Nervión 2012

Con algo de retraso respecto a otras ediciones, iniciamos finalmente el ciclo de carreras populares que organiza el IMD en Sevilla. La gran novedad este año ha sido que las inscripciones han dejado de ser gratuitas, algo que no ha estado exento de polémica entre todos los aficionados a este deporte. Hay que reconocer, no obstante, que los precios son «populares»: veinte euros por el derecho a participar en todo el circuito, lo que incluye las 5 carreras de los distritos del IMD más la nocturna del Guadalquivir. Además, en el momento de recoger tu dorsal te hacen entrega de una bolsa de corredor con cuatro camisetas y una gorra. También existe la modalidad de pago por carrera individual (5 euros), pero a poco que quieras participar en unas cuantas te sale rentable el paquete completo. Y eso sin contar con la molestia de tener que recoger el dorsal para cada carrera, algo que no sucede si optas por el circuito completo, pues es el mismo para toda la temporada.

La verdad es que, de todas las carreras en las que he participado, las del IMD han sido las únicas por las que no he pagado dinero. Sin ir más lejos, correr en la San Silvestre vallecana me costó 19 euros; por participar en Divina Pastora pagué aproximadamente la mitad.

En cualquier caso, la tasa de participación ha sido excelente, aunque también es cierto que me he encontrado a gente corriendo sin dorsal.

Una mañana muy soleada, algo calurosa, pero sin el viento de todos estos días pasados. Todo perfecto para un placentero domingo deportivo.

Mi estrategia ha sido simple, no perseguía otro objetivo salvo disfrutar, apretando en la medida de lo posible, pero sin llegar a cansarme. Desde el aspecto más competitivo, tampoco se trataba de una prueba oficial. De hecho, la distancia ha sido sólo de 9100 metros.

Así que programo a ForeRundy a 5:45, como en Divina Pastora. Salgo muy bien y muy suelto. A veces creo que, como estoy corriendo con un pantalón corto que es la mínima expresión (en los entrenamientos suelo hacerlo con chandal), llevar tan poca tela sobre las piernas me hace dar una zancada más alegre. La cuestión es que los primeros kilómetros debí rodar en torno a 5′ /Km, o poco más.

Llegado el primer puesto de avituallamiento, al comprobar que lo había dejado atrás, di media vuelta y me dirigí a recoger la botella, algo que no debí hacer, pues supuso un punto de inflexión que me rompió la concentración y el ritmo excelente que mantenía. Además, si hubiera aguantado 10 metros, me hubiese encontrado con otra tanda de botellas más adelante.

El punto más duro, sin duda, el puente de la carretera de Carmona. Definitivamente, las cuestas no son lo mío y a la carrera de hoy no le han faltado unas cuantas.

Así que 9120 metros, según mi GPS, en 49′, lo que resulta en un ritmo medio de 5:22 /Km.

Se me ha hecho cortita y con ganas de más. Se ha notado ese kilómetro de menos. En compensación, la próxima excederá ampliamente los 10K.

Nos vemos el 13 de mayo en Triana…

Javier Montero Gabarró


Carrera Popular Nervión 2012


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

LaTeX – Capítulo 25: Paréntesis matemáticos

Vamos a dedicar la entrada de hoy a aprender a manejar correctamente los paréntesis en el modo matemático.

Ya hemos ilustrado el uso de paréntesis en algunos ejemplos: basta con utilizar los símbolos habituales de apertura y cierre. No obstante, esto no sirve siempre:

Veamos, por ejemplo, la salida de estas instrucciones:

\[
(\frac{\frac{2}{3}+\frac{1}{2}}{\frac{1}{2}})=\frac{7}{6}
\]

  (\frac{\frac{2}{3}+\frac{1}{2}}{\frac{1}{2}})=\frac{7}{3}

Los símbolos de apertura y cierre hacen lo posible hasta un cierto límite. En el ejemplo, en el que la construcción es de varias alturas, se quedan ridículamente cortos.

Todo está pensado, no te preocupes: existen unos comandos especiales en LaTeX para generar paréntesis inteligentemente altos. Son inteligentes en el sentido de que se dimensionan adecuadamente al tamaño que la construcción matemática requiera.

Para abrir un paréntesis grande dispones del comando

\left(

(sí, left seguido del paréntesis normal de apertura; left hace mención a que es el paréntesis izquierdo, el de apertura)

Para cerrar, como se puede deducir fácilmente,

\right)

(esto es, right seguido del paréntesis de cierre)

Sustituyendo los paréntesis normales por \left( y \right), en la expresión anterior, obtenemos:

\[
\left(\frac{\frac{2}{3}+\frac{1}{2}}{\frac{1}{2}}\right)=\frac{7}{3}
\]

  \left(\frac{\frac{2}{3}+\frac{1}{2}}{\frac{1}{2}}\right)=\frac{7}{3}

Esto ya tiene mejor pinta, ¿verdad?

Una técnica más para la saca. Si haces inventario, te darás cuenta de que ya hay muchas cosas que sabes hacer en el modo matemático de LaTeX. Pero aún falta muchísimo por aprender y será un placer sumergirnos en los distintos campos de las matemáticas, aunque sólo sea para aprender a escribir con elegancia y rapidez sus fórmulas.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/04/latex-capitulo-25-parentesis-matematicos/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Imágenes en HTML – III: Un texto alternativo

Hagamos balance de la situación: ya sabemos referenciar imágenes en nuestra página web con el elemento <img> y el atributo src, así como la conveniencia de indicar su tamaño para facilitar el trabajo al navegador.

Hay ocasiones en las que, por determinadas circunstancias, no se descargan las imágenes. Quizás apunten a un fichero inexistente, o puede que hayamos desactivado su descarga para agilizar la carga de la página. O tal vez estemos empleando un navegador en modo texto como Lynx. En esos casos sería muy práctico, a pesar de todo, poder hacernos una idea de cuál es el contenido de la imagen.

Para ello disponemos del atributo alt, al que le facilitamos, entre comillas, un breve texto alternativo describiendo la imagen.

Por ejemplo, he aquí la oveja experta:

<img src="expertahtml.jpg" alt="La oveja experta en HTML" height="283" width="213" />

El texto alternativo indicado en alt aparecerá en el caso de que no se llegue a cargar la imagen.

En algunos navegadores antiguos ese texto se mostraba incluso en imágenes cargadas cuando situábamos el ratón encima de ellas, pero debes saber que eso no es lo que determina la especificación.

Acostúmbrate a usar siempre el atributo alt cuando trates con imágenes. No sólo harás tu página más funcional, sino que, además, será mejor valorada por los buscadores. De hecho, si quieres escribir código XHTML estricto, se trata de una exigencia absoluta.

Naturalmente, hay situaciones en las que no es deseable facilitar un texto alternativo. Si tienes gráficos asociados al diseño estructural de la página como, por ejemplo, las viñetas previas a un menú, no aporta nada, y es incluso molesta, la presencia de texto alternativo. En estos casos, para cumplir con las exigencias de XHTML, bastaría con facilitar al argumento alt una cadena de texto vacía, alt="".

Javier Montero Gabarró


Fecha de última actualización: 20 de abril de 2012


Imágenes en HTML – III: Un texto alternativo


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies