LaTeX – Capítulo 17: Limitando el ámbito mediante grupos

Si recuerdas el capítulo en el que tratamos las declaraciones, vimos que estos tipos de comandos actuaban a modo de conmutadores, activando o desactivando diferentes modos de operación. Así, por ejemplo, con el comando \itshape activábamos la escritura en itálica, que permanecía así hasta que ejecutábamos otro comando incompatible con éste como, por ejemplo, \upshape, que devolvía el texto a una verticalidad normal.

Vimos también que dentro de un comando o un entorno su ámbito, es decir, su alcance de acción, venía delimitado naturalmente por el bloque al que pertenecía.

Así pues, en el siguiente ejemplo

\textit{La casa de la pradera era una \bfseries serie antológica}

el ámbito de la declaración \bfseries, que activa la escritura en negrita, concluye con el cierre de las llaves del comando y todo el texto que escribiéramos después de «serie antológica» aparecería en modo normal, sin necesidad de devolver el estado con \mdseries.

Exactamente lo mismo sucedería con esto:

\begin{itshape}
La casa de la pradera era una \bfseries serie antológica
\end{itshape}

Existe otro modo de restringir el ámbito: los grupos.

Un grupo no es más que un conjunto de texto o comandos delimitado entre un par de llaves {}.

Fíjate de que modo más sencillo limitaríamos el ámbito de \bfseries:

La casa de la pradera era una {\bfseries serie antológica}

El par de llaves que hemos introducido define un grupo y todas las declaraciones en su interior pierden efecto fuera de él.

La frase completa la podemos reescribir, entonces, del siguiente modo, empleando sólo declaraciones:

{\itshape La casa de la pradera era una \bfseries serie antológica}

Fuera de ese grupo el texto dejará de ser itálica o negrita.

Los grupos pueden ser anidados:

{\itshape La casa {\bfseries de la pradera} era una serie antológica}

En este ejemplo todo está en itálica; pero, además, en negrita, sólo el fragmento «de la pradera».

Sé cuidadoso y asegúrate, en estos casos, de que cierras tantas llaves como abres.

Javier Montero


LaTeX – Capítulo 17: Limitando el ámbito mediante grupos


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

Instalación de WordPress en un servidor local con WampServer

Hay muchos motivos por los que puedes desear instalar WordPress en un servidor local. Yo, fundamentalmente, lo utilizo como réplica del servidor en producción. En una instalación local me puedo permitir el lujo de experimentar sin miedo a afectar al sistema real: pruebo los plugins y los temas antes de subirlos a la red.

Otra razón importante es simplemente para aprender: puedes estudiar y practicar todas las técnicas sin miedo a estropear nada. El manejo básico del entorno, las copias de seguridad y restauración de las bases de datos, el diseño de plantillas o incluso la creación de tus propios temas: todo puedes experimentarlo sin temor. En el peor de los casos sólo tendrás que reinstalar nuevamente todo, una tarea que apenas te llevará unos minutos.

En el artículo de hoy te mostraré cómo instalar WordPress 3.3.1 sobre WampServer 2.2A, últimas versiones de estos programas en la fecha en la que escribo esto.

Voy a presuponer que ya tienes instalado WampServer en tu equipo. Si no es así y tienes dudas de cómo hacerlo, echa un vistazo a un artículo anterior en el que explico el proceso de instalación.

Si en vez de WampServer tienes XAMPP o, en general, cualquier instalación del trío Apache – MySQL – PHP, lo explicado aquí te servirá también.

WordPress puede instalarse de varias formas. Yo voy a contarte una bastante conceptual que te ayudará a comprender lo que está sucediendo entre bastidores.

Lo primero que debemos hacer es crear una base de datos en MySQL para almacenar todos los contenidos de WordPress. Supongo que ya sabes que la base de datos es el alma de WordPress: todos los artículos, las páginas, las categorías, etc., están almacenados en tablas en una base de datos. La aplicación lo único que hace es dar forma a esos datos bajo demanda de lo que está solicitando el usuario que accede al blog.

Para crear la base de datos de WordPress emplearemos la popularísima herramienta phpMyAdmin, presente en todos los entornos AMP.

Arranca WampServer, búscalo en la parte inferior de la pantalla, despliega el menú y lanza phpMyAdmin.

Haz clic sobre la pestaña Bases de datos. Te aparecerá la siguiente ventana:

En el cuadro de texto Crear nueva base de datos escribimos, por ejemplo, db_wordpress, y pulsamos el botón Crear.

Observa la base de datos db_wordpress recién creada:

El siguiente paso consiste en crear un usuario en mysql y asignarle privilegios sobre la base de datos que hemos creado. Haz clic sobre la pestaña Privilegios para ver una lista de todos los usuarios existentes.

Pulsamos sobre Agregar un nuevo usuario:

La primera sección, Información de la cuenta, la rellenamos del modo indicado en la figura. Como nombre de usuario he elegido wpuser, pero cualquier otro serviría.

En el campo Servidor, desplegamos las opciones y elegimos Local, lo que provoca que automáticamente se rellene con localhost, es decir el servidor que representa a nuestra propia máquina.

Elegimos una contraseña y la reescribimos en el campo siguiente.

Las demás secciones, Base de datos para el usuario y Privilegios globales las dejamos tal como están.

Pulsamos sobre el botón Crear usuario.

Observemos, en la vista global de usuarios, el recién creado:

En la fila correspondiente al usuario, pulsamos sobre Editar los privilegios. Nos aparece la siguiente ventana:

La sección Privilegios globales la dejamos como está. Con la barra de desplazamiento vertical nos movemos hasta Privilegios específicos para la base de datos:

Desplegamos la lista Añadir privilegios a esta base de datos y seleccionamos, entre las que nos aparecen, la recién creada, db_wordpress.

Nos aparecerá inmediatamente la siguiente escena:

Pulsamos sobre Marcar todos para asignar todos los privilegios sobre la base de datos y, a continuación, sobre el botón Continuar.

El mensaje en la parte superior nos confirma que hemos asignado los permisos. Justo debajo de él vemos el comando SQL que se ha ejecutado internamente.

Con esto concluyen los preparativos. Anota en un cuaderno el nombre de la base de datos, el usuario y su contraseña, pues tendrás que decírselos al instalador de WordPress.

Comienza la fiesta… Dezcárgate de la página oficial la última versión de WordPress en español. En el momento de escribir esto es, como ya te he dicho, la 3.3.1.

Se trata de un fichero .zip que debemos descomprimir en la zona pública de WampServer, es decir, en:

c:\wamp\www

(en el supuesto de que hayamos instalado WampServer en c:\wamp)

Una vez descomprimido, abre tu navegador e introduce la siguiente dirección:

http://localhost/wordpress/wp-admin/install.php

Deberá aparecerte el siguiente mensaje de error:

Pulsa sobre el botón Crear un archivo de configuración. Nos aparece un nuevo escenario indicándonos una serie de datos previos que deberemos tener a mano:

Son precisamente la base de datos y el usuario que preparamos hace un rato.

1. Nombre de la base de datos. ¡Lo tenemos!: db_wordpress
2. Nombre de usuario de la base de datos. ¡Lo tenemos!: wpuser
3. Contraseña de la base de datos. ¡La tenemos!: ******
4. Host de la base de datos. ¡Lo tenemos!: localhost
5. Prefijo de la tabla, por si queremos instalar varios WP en la misma base de datos. No es el caso, así que no lo necesitamos.

¡Qué comience el show! Pulsa sobre ¡Vamos a ello!

Rellena, en la ventana que aparece, los datos pedidos. El último campo no necesitas cambiarlo, pues sólo va a haber una instancia de WordPress sobre esa base de datos. Deja, pues, el prefijo propuesto para las tablas, wp_.

Cuando termines de rellenarlo, pulsa sobre el botón Enviar.

Deberá aparecerte una ventana indicando que todo ha ido correcto. Tu fichero de configuración ha sido creado correctamente y estás listo para iniciar la instalación.

Pulsa sobre Iniciar la instalación.

Para proseguir, el instalador te va a pedir una información:

Título del sitio: El título que le deseas dar a tu blog. Pon el que desees (siempre lo podrás cambiar).

Nombre de usuario: se trata del usuario administrador de WordPress. Por lo general, es buena práctica cambiar, por cuestiones de seguridad, el que te ofrece por defecto WordPress. Si no te preocupa excesivamente esta cuestión, al tratarse de un servidor local, deja admin.

Password, dos veces: introduce la contraseña del administrador. WordPress te ayudará a comprobar la fortaleza del password elegido.

Tu correo electrónico: en un servidor público, esto tendría sentido, pues WordPress se comunicaría contigo a través de esa dirección. Pero es una instalación local: pon lo que te dé la gana.

Privacidad: si estuvieses en un servidor público, convendría dejar la marca para que el blog apareciera en Google. Aquí resulta indiferente; puedes quitarla.

Finalmente, pulsa sobre el botón Instalar WordPress.

¡Lo lograste!

Tal como dice el mensaje: sentimos decepcionarte si te esperabas algo más.

¡Se acabó!

Si quieres empezar a trastear, puedes pulsar sobre el botón Acceder.

Recuerda la dirección que te aparece en la figura. Es la que deberás facilitar al navegador para acceder a WordPress: http://localhost/wordpress/wp-login.php

Introduce el usuario que hayas creado como administrador y su contraseña. Una vez dentro podrás crear otros usuarios con los privilegios que desees.

La dirección de tu blog es: http://localhost/wordpress/

Una instalación completa de WampServer, junto a WordPress no te llevará en total más de quince minutos. Así que no tienes excusa para:

– tener una copia de seguridad local de tu servidor WordPress en producción
– disponer de un entorno apropiado para experimentar con nuevos plugins antes de subirlos a tu servidor
– aprender WordPress sin miedo a fastidiar nada
– aprender a diseñar tus propios temas
– o, por qué no, montar tu propio servidor WordPress en una intranet

Tienes ante ti uno de los programas más fascinantes que se han desarrollado para la web y que ha cambiado, sin ningún género de dudas, el modo de concebirla. ¡Que te aproveche!

Javier Montero


http://elclubdelautodidacta.es/wp/2012/01/instalacion-de-wordpress-en-un-servidor-local-con-wampserver/


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 #15: Signos de repetición: los dos puntos

Ya conocemos las técnicas más básicas de edición: sabemos dibujar notas, escribir alteraciones sobre ellas, agruparlas en tresillos o prolongarlas con puntillos o ligaduras. Pero sólo es necesario echar un vistazo a cualquier partitura para reconocer que aún nos queda mucho camino por recorrer: hay mucho más que notas en ellas.

En el artículo de hoy comenzaremos a tratar los signos de repetición, empezando por el más básico de ellos: los dos puntos.

Supongamos que queremos escribir algo como esto:

En el primer compás tenemos los dos puntos de inicio de repetición y en el segundo los de terminación.

A diferencia de otros signos de repetición, los dos puntos debemos buscarlos en la paleta que gestiona los diferentes tipos de líneas de compás. Haz clic, en la paleta, sobre la sección líneas de compás.

Voy a explicarte dos maneras de colocar los dos puntos. Como tenemos que cambiar dos barras, podemos practicar una técnica con cada una de ellas.

Vamos a situar los dos primeros puntos de inicio de repetición. Ya sabes cómo seleccionar las notas, sólo tienes que hacer clic sobre ellas. Pero quizás no sepas que también puedes seleccionar otros elementos, como la barra de separación de compases. Haz clic sobre la pequeña barra sobre la que vamos a situar los dos puntos. Te aparecerá destacada en azul.

A continuación haz doble clic, en la paleta, sobre el símbolo de inicio de repetición. Automáticamente, la barra que hemos seleccionado se cambiará por otra con los dos puntos iniciales.

Probaremos la segunda técnica en el fin de repetición. Esta vez no necesitas seleccionar nada previamente.

Arrastra cuidadosamente el símbolo de fin de repetición hasta el segundo compás. No sueltes aún. Quiero que observes que el compás se destaca en gris. Pero fíjate que si con la punta del ratón tocas la cabeza de una nota, desaparece la selección en gris y lo que se selecciona es la nota, destacándola en rojo. Asegúrate de que, antes de soltar el ratón, está el compás seleccionado en gris, y no la nota. Una vez sueltes, el símbolo de repetición se coloca automáticamente al final del compás, como es de esperar. Si lo que hubiéramos arrastrado hubiese sido el símbolo de inicio, en vez del de fin, se habría situado automáticamente al comienzo.

Si en vez de estar el compás en gris, hubiésemos tenido una nota seleccionada en rojo, el símbolo de repetición habría aparecido precediéndola y no al final del compás. Desde luego, con un poco de puntería, también podrías haber acercado el ratón hasta la misma barra de separación hasta que se seleccionara en rojo y, entonces, soltar el ratón, pero te aseguro que tardarás más.

En ocasiones te encontrarás con dos puntos que terminan una repetición seguidos, a continuación, por otros dos que comienzan una nueva. En ese caso, puedes aplicar dos veces lo aquí explicado, una para cerrar y otra para abrir, pero existe un método más rapido. Observa, en la paleta, que además de los símbolos de inicio y fin de repetición, existe un tercero que contiene ambos en uno. Colócalo como ya sabes y habrás matado dos pájaros de un tiro.

Si quieres suprimir un signo de repetición, simplemente selecciónalo y haz doble clic, en la paleta, sobre el símbolo que representa una barra simple.

Javier Montero


MuseScore #15: Signos de repetición: los dos puntos


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 – 4: Séptima

Hoy aprenderemos a construir un acorde muy especial, el de séptima, también conocido como séptima de dominante, o, sin el «de», séptima dominante.

La razón de este sobrenombre no es otra sino porque aparece, de modo natural, sobre el quinto grado cuando armonizamos con terceras la escala mayor. Al quinto grado se le conoce como dominante y de ahí toma el acorde su nombre. No te preocupes si esto te suena ahora mismo a chino: en otro artículo que publicaré en breve trataremos la armonización de la escala mayor y verás cómo aparece el acorde de séptima.

El acorde de séptima se indica, mediante cifrado moderno, agregando un 7 a la nota fundamental:

Do séptima –> C7
La séptima –> A7

El acorde de séptima es la primera de las cuatriadas que aparecen en esta serie y la he elegido por una razón particular: es un acorde que empleamos incluso cuando elegimos armonías basadas en triadas. Y es así por esa tensión característica que proporciona el tritono formado entre la tercera y la séptima del acorde (de nuevo, no te preocupes si no comprendes esto ahora, no es esencial para la temática del artículo), que invita a una resolución inmediata hacia el acorde de tónica. Es tan agradable y característico este efecto que pronto lo incorporamos a nuestro repertorio de acordes antes del resto de las cuatriadas.

La fórmula del acorde de séptima es la siguiente:

7: 1 – 3 – 5 – b7

Es decir, a la triada mayor le agregamos la séptima bemol.

Ya sabes: conocida la fórmula del acorde estás ya en condiciones de averiguar las notas de cualquiera de ellos. La aplicación práctica a la guitarra o al piano sería tan simple como localizar este conjunto de notas en el instrumento.

Por ejemplo, calculemos las notas de C7:

Como siempre, empezamos por la escala mayor; en este caso, Do mayor:

C – D – E – F – G – A – B – C

Y cogemos los grados requeridos:

1: C
3: E
5: G
b7: Bb

Por lo tanto:

C7: C – E – G – Bb

Veamos otro ejemplo: A7

La escala de La mayor es:

A – B – C# – D – E – F# – G#

1: A
3: C#
5: E
b7: G

A7: A – C# – E – G

Coge tu guitarra y configura cualquier acorde de séptima que conozcas. Como ejercicio te propongo que te fijes qué notas estás trasteando y compruebes cómo cuadran con lo explicado aquí.

Una vez hecho esto, trata de «descubrir» nuevas posiciones por ti mismo.

Javier Montero


Construcción de acordes – 4: Séptima


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

San Silvestre vallecana 2011

Empecé a correr hace un año justo ahora para poder estar ahí: recorrer, el último día del año, los diez kilómetros que median entre el estadio Santiago Bernabeu y Vallecas.

Justo hace un año me compré en Madrid mis primeras zapatillas de correr. En el horizonte, dos retos que para mí resultaban sobrehumanos: la Nocturna del Guadalquivir en Sevilla y la San Silvestre vallecana en Madrid.

En septiembre cumplí el primero de ellos; ayer, el segundo. Repartidas durante el año, además, muchas otras carreras populares repletas de emoción.

Sin ninguna pretensión de marcas, simplemente estar ahí. Me posicioné en el cajetín de 55 minutos que me correspondía por mi mejor marca acreditada (54′ en la carrera Divina Pastora – Sevilla) y programé ForeRundy para que me llevara a meta, sin sufrimiento, en menos de una hora.

Más de 38.000 corredores nos juntamos ayer. Si creía haber visto todo ya en la nocturna de Sevilla, me equivocaba por completo. 38.000 ilusiones y anhelos esperábamos impacientes el disparo de salida.

Tras la primera tanda de corredores, que se llevó a los 12.000 primeros Concha Espina arriba, salió el segundo lote, en el que me encontraba.

Al final de la primera gran cuesta me giré para contemplar la gran masa humana a mis espaldas. ¡Qué impresión!

Pegado al globo de los 55 minutos descendí por Serrano, alcancé la Puerta de Alcalá, y tomé la Castellana perdido en ensoñaciones y disfrutando como un niño de cada metro de ese recorrido tan especial y de ese público tan numeroso que nos estuvo animando metro a metro. Hoy, horas después, cierro los ojos y soy capaz de revivir perfectamente cada tramo de la carrera.

La entrada en Vallecas fue dura, tal como estaba previsto. La avenida de la Albufera se me hizo larguísima. Tuve que aminorar la velocidad y perdí definitivamente al globo de los 55 minutos. Por más que miraba a la masa humana delante mía, no divisaba el fin de la cuesta.

Fueron dos últimos kilómetros difíciles que me recordaron que una de las razones por las que creo que, en mayor o menor medida, todos corremos, es por ese «masoquismo» especial, ese sufrimiento que es capaz de apaciguar y hacer más llevaderas las penas más profundas del alma.

Entré en meta en 57′ 57″, según me indicó un SMS que recibí ya en el metro. Devolví el chip, recogí la prendas en el guardarropa y me cambié para protegerme del frío de la noche. Allí me esperaba mi cuñado Rafa, que había terminado la carrera en 38′, junto a otros compañeros de su club de atletismo C.A. Villanueva.

Un sobresaliente a la organización y a las más de 600 personas que velaron por que todo resultara perfecto y sin cuellos de botella.

Cada carrera nos hace diferentes, sin lugar a dudas y cada una significa algo para nosotros. Para mí, la San Silvestre vallecana simboliza la rúbrica a un estilo de vida, el compromiso, la superación personal y el convencimiento de que con constancia y pasión podemos lograr casi cualquier cosa que nos propongamos.

Javier Montero


San Silvestre vallecana 2011


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

El método de los hábitos incrementales

Para poder dominar cualquier actividad que te propongas necesitas constancia. Seguro que has oído en numerosas ocasiones algo parecido a «es mejor dedicarle veinte minutos cada día que tres horas ocasionalmente».

Sea lo que sea: aprender un idioma, tocar un instrumento, programar con soltura,… Cualquier cosa que te propongas aprender requiere aproximarse a ella del modo en el que uno cuidaría un huerto: regándolo día a día.

Es algo que ya sabes de sobra: un largo camino se recorre paso a paso.

No hablaré más de lo que es obvio. Voy a dar una vuelta de tuerca a este concepto sencillo y lo enfocaré hacia el polifacetismo. Si eres de los que orientan su vida en torno al aprendizaje continuo en numerosos campos este artículo es para ti.

La idea sigue siendo la misma: trabaja cada día un poco en cada una de las actividades que te propongas y, antes de que te des cuenta, tendrás un buen nivel en cada una de ellas. Cuida de todas tus plantas día a día y con buena probabilidad recogerás una buena cosecha.

Los que disfrutamos de los placeres del polifacetismo nos las ingeniamos recurriendo a numerosos trucos para tratar de llevar todo adelante. Voy a presentarte aquí una técnica extremadamente sencilla que yo utilizo y que he bautizado con el nombre del método de los hábitos incrementales.

Puedes emplearla no sólo para cuestiones de aprendizaje a medio y largo plazo, sino para lograr objetivos de cualquier otra índole.

Como herramientas sólo necesitas un cuaderno y un lapicero. Vamos a crear listas y cualquier mecanismo que te permita gestionarlas te servirá. Yo empleo un programa de ordenador que está especializado en la gestión de tareas y sobre el que he desarrollado numerosas técnicas, además de esta. Hablaré de él en otro momento; para lo que te quiero explicar hoy será suficiente contar con lápiz y papel.

Para que comprendas el modo en el que la palabra incremental entra en juego, voy a contarte la metodología que empleo practicando mi deporte favorito, salir a correr.

Comienzo corriendo muy despacio y muy poco tiempo. No tengo el mínimo reparo en permanecer varias semanas así, dando tiempo a que mi organismo -músculos, tendones, articulaciones, corazón, pulmones- se adapten a la nueva actividad.

Cuando siento que el cuerpo está preparado, realizo un pequeño incremento en exigencia. En mi caso, puede ser hacer tiradas dos minutos y medio más largas que la semana anterior. Es sólo un pequeño incremento en dificultad y el cuerpo se podrá adaptar sin problemas. Cada semana incremento dos minutos y medio el tiempo de mis salidas individuales.

Es muy importante escuchar permanentemente lo que nos dice el cuerpo. En ocasiones me doy cuenta de que aún no está asimilando correctamente los incrementos en esfuerzo, así que la siguiente pregunta es obligada cada semana:

¿Incremento, mantengo o decremento?

Si el cuerpo aún necesita más tiempo, planifico la semana manteniendo la misma actividad que la anterior, sin ningún incremento. Incluso, si lo estimase adecuado, podría plantearme dar un pequeño paso atrás y decrementar la duración del ejercicio.

Ese es el modo en el que puedo disfrutar de mi actividad física, día a día, mejorando cada semana y con el mínimo riesgo de lesiones, pues doy tiempo suficiente a que el cuerpo se adapte antes de exigirle un nuevo esfuerzo. Cuando no quiero incrementar más el tiempo, me planteo un aumento, por ejemplo, en velocidad muy gradualmente. Resulta verdaderamente divertido y estimulante entrenar así.

Ya tenemos la esencia del método de los hábitos incrementales. Coge tu cuaderno, pon la fecha de hoy en una página y escribe tu primer hábito orientado hacia una actividad en la que pretendas mejorar o un objetivo que quieras lograr.

Por ejemplo, quiero mejorar mis habilidades con la guitarra. Trabajar las escalas, día a día, me hará un mejor improvisador. Así que escribo:

– Estudiar los patrones melódicos de la escala mayor.

Sólo esto, nada más. Mi compromiso ahora es que todos los días, disciplinada y constantemente, voy a dedicar un tiempo determinado a hacer este trabajo. No indico cuánto tiempo, pero debe ser el suficiente que me deje la sensación de haber hecho algo provechoso.

Puedo hacer otras actividades, desde luego, pero mi compromiso, de momento, está sólo en lo que hay en la lista.

Tras un par de días comprobando que soy capaz de ser disciplinado y que llevo a rajatabla mi plan, me planteo la entrada de una nueva actividad en mi lista.

Escribo una nueva lista con la fecha de hoy con las siguientes tareas:

– Estudiar los patrones melódicos de la escala mayor.
– Leer literatura inglesa.

Cada día escribo una nueva hoja con la lista de tareas actuales con las que estoy comprometido a dedicar un tiempo diario. De cuando en cuando, me voy planteando la siguiente pregunta:

¿Incremento, mantengo o decremento?

Gradualmente, en función de nuestra capacidad y tiempo disponible, nuestra lista polifacética irá creciendo hasta un punto en que alcance el equilibrio. Día a día iremos reafirmando hábitos que nos harán crecer en todos nuestros campos.

Hay días en los que, inevitablemente, no podremos cumplir con todo (o incluso con nada), pero al menos trataremos de hacer siempre nuestro mejor esfuerzo. En esos casos, en la lista del día siguiente, incluiremos, junto a la tarea, y entre paréntesis, un número indicando el número de días que llevamos sin realizar esa actividad.

Debemos ser cuidadosos con el contenido de nuestra lista de hábitos. El tiempo es limitado y nuestras inquietudes, muchas. Escribe en la lista sólo aquellas actividades que más valor te van a dar. Concentra tus energías, fundamentalmente, en lo que es verdaderamente importante y no dudes en retirar de tu planning las tareas que haga falta si necesitas hacer hueco para otras más valiosas.

Prueba esto un par de meses, si te atreves, y cuéntame tu experiencia…

No es magia… Es el resultado de sembrar y cuidar de la cosecha cada día.

Javier Montero


El método de los hábitos incrementales


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

BitBite Python

Inauguramos una nueva serie que complementará los capítulos teóricos de programación en Python y que estará enfocada al aspecto más práctico del lenguaje: la elaboración de programas que solucionen problemas reales.

Hasta ahora, nos hemos limitado a una exposición «atómica» de los elementos del lenguaje, en la que cada concepto se presentaba, de modo aislado, del modo más simple que permitiera su comprensión. La herramienta principal ha sido el intérprete interactivo, el entorno perfecto y más rápido para experimentar cada técnica.

Bajo el nombre BitBite Python realizaremos programas completos que resolverán problemas comunes con los que se suele enfrentar un programador. No necesariamente todos serán de utilidad práctica directa, pero aún así las técnicas aprendidas enriquerecerán el bagaje de recursos de cada uno y podrán ser aplicadas en otros contextos.

Cada concepto presente en BitBite Python habrá sido tratado previamente dentro de los capítulos teóricos. A medida que vayamos profundizando en estos irán apareciendo en la sección práctica.

Nos vemos en BitBite Python

Javier Montero

Python – Capítulo 27: Funciones con argumentos por defecto

Continuando con el tema de las funciones en Python, voy a mostrarte hoy una técnica interesante que permite facilitar argumentos por defecto a una función. Veamos qué significa esto.

En capítulos anteriores vimos el uso de argumentos en las funciones. Recuerda la función praderazo(), que mostraba un texto detérminado repetidas veces y enmarcado por un símbolo a elegir.

Su definición era la siguiente:

def praderazo(veces,simbolo):
    print(simbolo*42)
    for n in range(veces):
      print(simbolo,'La casa de la pradera, pedazo serie...',simbolo)
    print(simbolo*42)

veces y simbolo son los argumentos de la función. Ejemplos de invocación posibles podrían ser:

>>>praderazo(5,'+')

o

>>>praderazo(100,'&')

La función, para ser invocada correctamente, necesita forzosamente dos argumentos. Decimos que veces y simbolo son argumentos requeridos.

Esta llamada generaría un error, como podemos comprobar:

>>> praderazo(5)
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    praderazo(5)
TypeError: praderazo() takes exactly 2 arguments (1 given)

Lo que nos dice el mensaje de error es que praderazo() requiere exactamente dos argumentos y sólo uno ha sido facilitado.

Observa ahora esta nueva definición de praderazo():

def praderazo(veces,simbolo='+'):
    print(simbolo*42)
    for n in range(veces):
      print(simbolo,'La casa de la pradera, pedazo serie...',simbolo)
    print(simbolo*42)

Fíjate en como está descrito el argumento simbolo, especificando directamente un valor.

Decimos que simbolo es un argumento por defecto y el valor especificado es el valor que tomará por defecto en caso de que no se facilite uno concreto.

Ya no es necesario especificar el segundo argumento, si no queremos. En caso de que no lo hagamos, simbolo tomará el valor por defecto (el signo ‘+’).

>>> praderazo(5)
++++++++++++++++++++++++++++++++++++++++++
+ La casa de la pradera, pedazo serie... +
+ La casa de la pradera, pedazo serie... +
+ La casa de la pradera, pedazo serie... +
+ La casa de la pradera, pedazo serie... +
+ La casa de la pradera, pedazo serie... +
++++++++++++++++++++++++++++++++++++++++++

Si no queremos usar el valor por defecto, hay que recurrir a la especificación completa:

>>> praderazo(3,'%')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% La casa de la pradera, pedazo serie... %
% La casa de la pradera, pedazo serie... %
% La casa de la pradera, pedazo serie... %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Es importante tener en cuenta que los argumentos por defecto deben figurar siempre después de los requeridos, y nunca antes. Supongamos que hubiéramos querido dejar por defecto veces y requerido simbolo:

>>> def praderazo(veces=5,simbolo):
    print(simbolo*42)
    for n in range(veces):
      print(simbolo,'La casa de la pradera, pedazo serie...',simbolo)
    print(simbolo*42)
    
SyntaxError: non-default argument follows default argument

Obtendríamos un error sintáctico reflejando que hay argumentos que no son por defecto después de los que sí lo son. Si no fuera así Python podría liarse a la hora de saber qué argumentos son unos u otros.

La definición correcta habría sido:

>>> def praderazo(simbolo,veces=5):
    print(simbolo*42)
    for n in range(veces):
      print(simbolo,'La casa de la pradera, pedazo serie...',simbolo)
    print(simbolo*42)

Veamos un nuevo ejemplo:

>>> def mifuncion(a,b=2,c=3):
  print(a+b+c)

Toma tres parámetros y calcula la suma de ellos. Si no especificamos ni b ni c tomará sus valores por defecto.

Invoquemos a la función de diversas maneras:

>>> mifuncion(4,5,6)
15

>>> mifuncion(6,4)
13

En este segundo ejemplo, los dos primeros argumentos corresponden a a y a b. Como no hemos especificado c, toma su valor por defecto.

>>> mifuncion(5)
10

Aquí hemos indicado sólo a, el único que es requerido. Los demás argumentos toman sus valores por defecto.

Para concluir, te propongo un ejercicio: adapta la función praderazo() para que el texto a enmarcar sea elegible por el usuario como argumento.

Pista: recuerda la función len(), que determina la longitud de una cadena.

Javier Montero


Python – Capítulo 27: Funciones con argumentos 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

Construcción de acordes – 3: Suspendidos

En la entrega anterior aprendimos a construir los acordes mayor, menor, aumentado y disminuido. Definen las cuatro triadas básicas existentes. Hoy veremos dos más, que constituyen los denominados acordes suspendidos.

Los acordes suspendidos

Un acorde suspendido no es más que un acorde mayor en el que la tercera ha sido sustituida por un grado próximo (la cuarta o la segunda), provocando cierta atmósfera de «suspensión» que invita a la devolución del acorde a su estado normal.

Si sustituimos la tercera de una triada mayor por la cuarta obtenemos el acorde de cuarta suspendida, indicado como sus4. Si empleamos la segunda tenemos el acorde de segunda suspendida, sus2.

La suspensión con la cuarta es la más común, provocando una tensión característica que suele resolverse pronto en el acorde mayor. Por eso, si en vez de sus4 ponemos simplemente sus, estamos refiriéndonos, por defecto, al de cuarta suspendida.

El acorde de cuarta suspendida

Su fórmula es, como hemos explicado:

1 – 4 – 5

Veamos, por ejemplo, Csus4 (o simplemente Csus):

Comenzamos creando la escala de Do mayor:

C – D – E – F – G – A – B – C

y recuperamos los grados 1, 4 y 5:

Csus4: C – F – G

Otro ejemplo: construyamos Asus4.

La escala de La mayor es:

A – B – C# – D – E – F# – G#

por lo que

Asus4: A – D – E

El acorde de segunda suspendida

En este caso, la tercera es sustituida por la segunda:

1 – 2 – 5

Tomemos las escalas mayores indicadas en el ejemplo anterior y recuperemos los grados 1, 2 y 5:

Csus2: C – D – G

Asus2: A – B – E

Sumamente sencillo. Como vemos, podemos construir cualquier acorde simplemente conociendo su fórmula. En la próxima entrega empezaremos ya con las cuatriadas. Asegúrate de comprender perfectamente lo visto hasta aquí antes de proseguir con su estudio.

Javier Montero


Construcción de acordes – 3: Suspendidos


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 16: Insertando imágenes

Ha llegado el momento de aprender a insertar imágenes en nuestros documentos. Mostraremos los comandos básicos y, como aplicación práctica, editaremos en LaTeX los cinco primeros capítulos del curso de mIRC, algo que ya iniciamos en el número 12 con los tres primeros.

Para pasar a LaTeX el capítulo 4, que contiene una lista simple, ha sido necesario recurrir al entorno \begin{itemize} … \end{itemize} que ya tratamos en su día. En el capítulo 5 aparecen las primeras imágenes.

Para trabajar con imágenes lo primero que vamos a hacer es cargar el paquete graphicx mediante la instrucción

\usepackage{graphicx}

escrita en el preámbulo.

Si tu entorno LaTeX no lo tiene ya instalado deberás descargarlo. Consulta los detalles de tu distribución para ver cómo hacerlo. En el caso de MikTeX, que es la que uso bajo Windows, no es necesario hacer nada, pues se ocupa automáticamente de su descarga por Internet tan pronto se da cuenta de que no lo tiene.

Una vez cargado el paquete ya tenemos a nuestra disposición el comando con el que podremos cargar imágenes:

\includegraphics{nombre_del_fichero}

Como argumento, entre llaves, facilitamos el nombre de fichero. No es necesario indicar su extensión y debe ser de un formato compatible con LaTeX (png o jpg si convertimos a pdf).

Si el fichero gráfico está en el mismo directorio que el código fuente, no será necesario especificar ningún path, únicamente su nombre.

El siguiente pdf incluye los cinco primeros capítulos del curso de mIRC. Descarga el código fuente y estudia el código que lo produce. Fíjate, en particular, en la carga del paquete graphicx en el preámbulo y en el uso de \includegraphics en el capítulo 5.

LaTeX toma las decisiones oportunas de formato en función de las dimensiones de las imágenes, ajustando los párrafos según convenga. No te preocupes ahora excesivamente por estas cuestiones; conforme vayamos adquiriendo nuevos recursos iremos refinando el diseño.

Javier Montero


LaTeX – Capítulo 16: Insertando imágenes


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